tldr:当纸下拉菜单的孩子被角更新,家长不会重新加载或改变作出反应。 在“选择”选项不绑定到新的项目,例如,除非我们把它更新为好。 示例代码,请访问: https://github.com/dirtysanchez69/issue-angular2-polymer
说我有一个纸下拉菜单,因为这样(能正常工作):
//hardcoded options and selection
<paper-dropdown-menu label="hardcoded options and selection">
<paper-listbox
[selected]="1"
class="dropdown-content">
<paper-item *ngFor="let option of ['hi', 'hello', 'yo']">{{option}}</paper-item>
</paper-listbox>
</paper-dropdown-menu>
在这种情况下,孩子(纸项目)父(纸张列表框)之前大概解析,和家长选择它的孩子中的老二是选择的值。
现在,如果选择稍晚抵达,异步事件发生后,该选项(纸项目)更新就好了,但我们失去了选择的值。
//hardcoded selection
<paper-dropdown-menu label="hardcoded selection">
<paper-listbox
[selected]="1"
class="dropdown-content">
<paper-item *ngFor="let option of dropdownOptions.fruit">{{option}}</paper-item>
</paper-listbox>
</paper-dropdown-menu>
如果dropdownOptions.fruit与某些值初始化,我们可以看到所选择的价值,但在更新的选项,选定的值消失。
现在,如果我们也结合所选择的值,并且我们更新以及,在接收到新数据,则新的选择值被显示(万岁)。 但是,如果我们真正改变“选择”属性值这仅适用。 如果我们这个值初始化为1,那么我们必须从以触发更新(这还是给我们留下了一个问题),另一个号码。
<paper-dropdown-menu label="selection refresh" #fruitDropdown >
<paper-listbox
[selected]="userData.fruitSelection"
class="dropdown-content">
<paper-item *ngFor="let option of dropdownOptions.fruit">{{option}}</paper-item>
</paper-listbox>
</paper-dropdown-menu>
你觉得这怎么样? 有没有干净的方式强行触发聚合物元件上的重载?