0
我有一個自定義元素<x-marker>
與<paper-checkbox>
它裏面。傳承聚合物的HTML屬性嵌套組件
我想在我的元素上有一個checked
屬性來反映<paper-checkbox>
,但我的解決方案似乎不是這樣做的方式。
HTML:
<x-marker is-checked="<%= someBoolean %>"></x-marker>
元素:
<dom-module id="x-marker">
<template>
<div>
<paper-checkbox id="checkbox"></paper-checkbox>
</div>
</template>
<script>
Polymer({
is: 'x-marker',
properties: {
isChecked: String
},
listeners: {
change: 'changeHandler'
},
attached: function() {
if (this.isChecked === 'true') {
this.$.checkbox.setAttribute('checked', this.isChecked);
}
},
changeHandler: function (event, detail, sender) {
//...
}
});
</script>
</dom-module>
聚合物0.5你可以使用checked?="{{isChecked}}"
,但是這似乎並沒有在1.0的工作了。同樣硬編碼<paper-checkbox checked="false">
仍然檢查只要該屬性存在的複選框。價值似乎並不重要,這就是爲什麼屬性本身必須被綁定,而不是它的價值。
我似乎無法想出解決辦法,包括處理財產作爲字符串=== 'true'
,而不是一個布爾值,直將其綁定到<paper-checkbox>
不工作。複選框始終標記爲設置「checked =」{{checked}}「'屬性。請注意,我的布爾值只是一個字符串(來自Ruby)而不是'{{binding}}'。這有什麼區別嗎? – Frexuz
嗯......我在本地測試它,它工作正常。只要您只初始化屬性,Ruby中的布爾值就可以。您不會從Polymer的數據綁定中獲益,但您似乎手動處理綁定。可能嘗試在'checked'上設置'reflectToAttribute'和/或'notify'屬性來傳播更改。請參閱https://www.polymer-project.org/1.0/docs/devguide/properties.html#attribute-reflection – Ricky