注:この質問は古いバージョンのポリマーに関するものです。 Googleのエンジニアは、ポリマーパッケージの迅速な最新情報と、ドッグフードをしていない時点では、問題が時代遅れであるということを実感しています。'dom-repeat'でデータバインディングに失敗して 'paper-item'の中の 'paper-listbox'を更新しています
ready関数の変数journal_tagsへの最初のデータバインディングが機能し、私は3つのオプション 'meeting'、 'payment'と 'general_message'を表示します。問題は、 'new_tag'変数を変更して新しいオプションを導入しようとしたときに発生します。 'new_tag'は、異なるポリマー要素のデータバインディングによって変更されます。
「new_tag」に変更を監視オブザーバ関数「add_new_tag」が、これらはコンソールログです呼び出さ:
0meeting
1payment
2general_message
3tada
したがって「ジャーナル・タグ」が変更されました。しかし、問題は、「ジャーナルタグ」の変更により「ペーパーリスト」の追加が追加されることが予想されたにもかかわらず、「ペーパーリストボックス」の「ペーパーアイテム」オプションが同じ初期の「会議」、「支払い」、「general_message」のままであるということです。タダ 'オプション。
これはコードである:
<dom-module id="journal-entry">
<template>
<paper-dropdown-menu label="Choose tag">
<paper-listbox class="dropdown-content">
<template is="dom-repeat" items="{{journal_tags}}">
<paper-item>
{{item.tag}}
</paper-item>
</template>
</paper-listbox>
</paper-dropdown-menu>
<paper-textarea label="journal_entry_text_area">
</paper-textarea>
</template>
<script>
(function() {
'use strict';
Polymer({
is: 'journal-entry',
properties:{
new_tag:{
type:String,
notify:true,
observer:'add_new_tag'
},
journal_tags:{
type:Object,
notify:true
}
},
ready : function(){
this.journal_tags=[
{tag:'meeting'},
{tag:'payment'},
{tag:'general_message'}
];
},
add_new_tag : function(){
this.journal_tags.push({tag:this.new_tag});
for(var i=0;i<this.journal_tags.length;i++){
console.log(i + this.journal_tags[i].tag);
}
//this.journal_tags.sort();
}
});
})();
</script>
</dom-module>