1

こんにちは:

paper-dropdown-menu変数が変更されるたびに、最初の項目を再選択したい、観測可能な変数から入力された があります。ただし、最初は正しく機能しますが、次回は最初に選択されたのと同じ最初の要素を選択し続けます。これは、コンポーネントの html および dart コードです。

paper_dropdown_menu_bug_test.dart

import 'package:polymer/polymer.dart';

@CustomTag('paper-dropdown-menu-bug-test')
class PaperDropdownMenuBugTest extends PolymerElement {
  @observable List list;

  PaperDropdownMenuBugTest.created() : super.created(){
    this.list = [0, 1, 2];    
  }

  listChanged(){
    this.$["paper-dropdown-menu"].selected = 0;
  }

  changeList(){
    this.list = [3, 4, 5]; 
  }
}

paper_dropdown_menu_bug_test.html

<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="packages/paper_elements/paper_dropdown_menu.html">
<link rel="import" href="packages/paper_elements/paper_item.html">

<polymer-element name="paper-dropdown-menu-bug-test">
  <template>
    <paper-dropdown-menu id="paper-dropdown-menu">
      <template repeat="{{item in list}}">
        <paper-item label="{{item}}"></paper-item>
      </template>
    </paper-dropdown-menu>
    <button on-click="{{changeList}}">Change List</button>
  </template>
  <script type="application/dart" src="paper_dropdown_menu_bug_test.dart"></script>
</polymer-element>

やり方が間違っているのでしょうか、回避策はありますか、それともバグレポートに記入する必要がありますか? (すでに別のインデックスを選択してから 0 を選択しようとしましたが、機能しません)

前もって感謝します

4

1 に答える 1

0

ラベル値を使用してアイテムを選択するvalueattr="label"ように構成するために追加する必要があります。<paper-dropdown-menu>

<paper-dropdown-menu id="paper-dropdown-menu" valueattr="label">

追加の提案:

それ以外の

listChanged(){
  this.$["paper-dropdown-menu"].selected = 0;
}

使用する

<paper-dropdown-menu id="paper-dropdown-menu" selected="{{selected}}" valueattr="label">
@observable var selected;

listChanged() => selected = list.first;

と書いても同じ効果があります。

@observable List list = [0, 1, 2];

PaperDropdownMenuBugTest.created() : super.created()

また

@observable List list;

PaperDropdownMenuBugTest.created() : super.created(){
  this.list = [0, 1, 2];    
}
于 2014-10-22T05:29:56.080 に答える