1

https://github.com/dart-lang/polymer-core-and-paper-examples/blob/master/web/paper_dropdown.htmlおよびhttps://github.com/dartの例に続く次のコードがあります-lang/polymer-core-and-paper-examples/blob/master/web/paper_dropdown.dart

編集済み

.html

<paper-dropdown-menu 
  label='Click to select..' 
  on-core-select='{{onCoreSelectCountryHandler}}'>
  <paper-dropdown class='dropdown'>
    <core-menu id='country' class='menu'>
      <template repeat='{{country in countries}}'>
        <paper-item>{{country.name}}</paper-item>
      </template>
    </core-menu>
  </paper-dropdown>
</paper-dropdown-menu>

ダーツ

final List<Country> countries = [
  const Country('Afghanistan', 'AF'),
  const Country('Åland Islands', 'AX')];

class Country {
  final String name;
  final String code;
  const Country(this.name, this.code);
}

void onCoreSelectCountryHandler(dom.CustomEvent e, var detail) {
    var detail = new JsObject.fromBrowserObject(e)['detail'];

  if (detail['isSelected']) {
  // DOES NOT WORK - HOW DO I GET THE SELECTION ATTEMPTED BELOW
  // The detail should be related to the Country class but 
   // I can't seem to relate it so I could get the selection.
  var kuntry = (detail['item'] as PaperItem).text;

}

Dart コードを使用して、ドロップダウンで選択された要素 (通常は表示される) を取得するにはどうすればよいですか?

4

2 に答える 2

1

アップデート

これが一番楽な方法だと思います

void onCoreSelectCountryHandler(dom.CustomEvent e, var detail) {
  print(countries[$['country'].selected].name);
  // or if you really need to access the `<paper-item>` element
  print(detail['item'].text);
}

selectedにはありませんpaper-dropdown。を提供するcore-menu内にa をラップします。paper-dropdownselected

参照
- https://www.polymer-project.org/0.5/docs/elements/core-menu.htmlおよび https://www.polymer-project.org/0.5/docs/elements/paper-dropdown の例-menu.html

于 2015-04-26T07:34:01.873 に答える
0

シンプルに国のリストを観察可能にする

final List<Country> cuntries = toObservable[
  const Country('Afghanistan', 'AF'),
  const Country('Åland Islands', 'AX')}]

選択が取得されます。

私の見落とし。

于 2015-04-26T16:27:01.867 に答える