2017-01-11 3 views
0

Когда элементы бумаги выпадающего-меню динамически добавляются его метка не будет обновляться, но выбранное значение меняется, который не отображается в меткебумажно-DropDown-меню не обновляя при добавлении пунктов меню динамически

Это показано на PLUNKER: https://plnkr.co/edit/jy7WxttkB1mN7z0uHuVJ?p=preview

<paper-dropdown-menu label="Patient"> 
<paper-menu class="dropdown-content" selected="{{selectedPatient}}" attr-for-selected="value"> 
    <template is="dom-repeat" id="patientMenu" items="[[patientsList]]"> 
    <paper-item class="patient-names" value="[[item.id]]">[[item.id]][[item.name]]</paper-item> 
    </template> 
</paper-menu> 

<paper-button on-tap="_fun" raised>change Array list</paper-button> 

<div style="color:blue;">selected patient id--->[[selectedPatient]]</div> 

Polymer({ 
    is: 'my-test', 
    properties: { 
     patientsList:{ 
     type:Array 
     } 
    }, 

    ready:function() { 
    this.patientsList =[ 
           {id:0,name:"aaa"}, 
           {id:1,name:"bbb"}, 
           {id:2,name:"ccc"}, 
           {id:3,name:"ddd"}, 
           {id:4,name:"eee"} 
        ]; 
    this.selectedPatient = 0; 
    }, 

    _fun:function(){ 
     this.selectedPatient = null; 
       this.patientsList = [ 
           {id:100,name:"xxx"}, 
           {id:101,name:"yyy"}, 
           {id:102,name:"qqq"}, 
           {id:103,name:"mmm"}, 
           {id:4,name:"eee"} 
        ]; 
    this.selectedPatient = 100; 


    } 

ответ

2

Я пытаюсь ваш plunker, особенно «он работает во второй раз» часть, сделать думаю, что этот вопрос может быть, что dom-repeat не было времени обновляет элементы, когда

this.selectedPatient = 100; 

выполнено.

Я попытался изменить его на

this.async(function(){ 
    this.set('selectedPatient',100) 
}.bind(this)); 

, чтобы убедиться, что selectedPatient устанавливается только после того, как dom-repeat обновляется, и, кажется, сделать трюк.

Смежные вопросы