[英]Multiple Paper-Dialog Displaying same content in nested dom-repeat
[英]How to display values if checkbox is checked on paper-dialog using dom-repeat
如果使用dom-repeat在紙張對話框中選中了復選框,如何顯示值。在控制台中,它以陣列形式打印。 我想在紙上對話上也一樣。 有什么建議么? 我已經為checktext完成了單綁定和雙綁定,但是對於多個復選框,它只顯示一個值。
Polymer({ is: 'check-list', properties: { checkdata: { type: Array, value: [{ name: 'Bike', checked: false }, { name: 'Car', checked: false }, { name: 'Cycle', checked: false }, { name: 'Bus', checked: false }, { name: 'Truck', checked: false }], }, }, checkall: function() { var checkvalue = this.checkdata; var checktext = []; for (i = 0; i < checkvalue.length; i++) { if (checkvalue[i].checked == true) { checktext.push(checkvalue[i].name); this.checkeditem = checktext; } } console.log(checktext); } });
<base href="https://polygit.org/polymer+polymer+v1.11.2/components/" /> <script src="webcomponentsjs/webcomponents-lite.js"></script> <link rel="import" href="polymer/polymer.html" /> <link rel="import" href="paper-checkbox/paper-checkbox.html" /> <check-list></check-list> <dom-module id="check-list"> <template> <template is="dom-repeat" items="{{checkdata}}"> <paper-checkbox on-tap="checkall" checked="{{item.checked}}">{{item.name}}</paper-checkbox> </template> </template> </dom-module>
如果我了解問題,那是checkeditem
沒有正確更新嗎? 我認為這是因為您在我們的for循環中擁有它。 如果將它移到外面,它應該可以正常工作。
Polymer({ is: 'check-list', properties: { checkdata: { type: Array, value: [{ name: 'Bike', checked: false }, { name: 'Car', checked: false }, { name: 'Cycle', checked: false }, { name: 'Bus', checked: false }, { name: 'Truck', checked: false }], }, }, checkall: function() { var checkvalue = this.checkdata; var checktext = []; for (i = 0; i < checkvalue.length; i++) { if (checkvalue[i].checked == true) { checktext.push(checkvalue[i].name); } } this.checkeditem = checktext; } });
<base href="https://polygit.org/polymer+polymer+v1.11.2/components/" /> <script src="webcomponentsjs/webcomponents-lite.js"></script> <link rel="import" href="polymer/polymer.html" /> <link rel="import" href="paper-checkbox/paper-checkbox.html" /> <check-list></check-list> <dom-module id="check-list"> <template> <template is="dom-repeat" items="{{checkdata}}"> <paper-checkbox on-tap="checkall" checked="{{item.checked}}">{{item.name}}</paper-checkbox> </template> <ul> <template is="dom-repeat" items="{{checkeditem}}"> <li>{{item}}</li> </template> </ul> </template> </dom-module>
另外,當我在這里時,您可以將checkall
功能簡化為
checkall: function() {
let checktext = [];
for (let checkvalue of this.checkdata) {
checkvalue.checked && checktext.push(checkvalue.name);
}
this.checkeditem = checktext;
}
希望你覺得這有用useful
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.