【发布时间】:2016-08-28 23:05:00
【问题描述】:
我正在尝试将Polymer 属性绑定到CheckBox 的禁用属性,但CheckBox 仅在开始时被禁用/启用。
我不得不提一下,我绑定的属性是Polymer 属性的子属性。
组件代码:
<link rel="import" href="../polymer/polymer.html"/>
<dom-module id="checkbox-disabled-example">
<template>
<button
on-click="onClick" >
Toggle Disabled Enabled </button>
<template is="dom-repeat" items="{{elementsObject.items}}" as="item">
<input
type="checkbox"
disabled$="{{item.disabled}}" >
{{item.name}} <br>
</template>
</template>
<script>
Polymer({
is: 'checkbox-disabled-example',
properties:{
elementsObject:{
type: Object,
value: {}
},
},
onClick: function(){
this.elementsObject.items.forEach(
function(item, index, array){
item.disabled = !item.disabled;
}
);
}
});
</script>
</dom-module>
index.html 代码:
<body>
<template id="just-for-demo" is="dom-bind" >
<checkbox-disabled-example elements-object={{ckData}} >
</checkbox-disabled-example>
</template>
<script>
window.addEventListener('WebComponentsReady', function() {
var template = document.querySelector('template[is=dom-bind]');
var data =
{
items:
[
{ disabled: true, name:"Element 01"},
{ disabled: false, name:"Element 02"},
{ disabled: false, name:"Element 03"},
{ disabled: false, name:"Element 04"},
{ disabled: false, name:"Element 05"},
{ disabled: true, name:"Element 06"}
]
};
template.ckData = data;
});
</script>
</body>
如您所见,我创建了几个复选框,每个复选框都绑定到其项目的 disabled 属性。
当我点击按钮时,我会切换每个项目的禁用值,但是复选框状态不会改变。
我做错了什么?
【问题讨论】:
-
您是否尝试过使用
dom-repeat模板的observe属性?示例:<template is="dom-repeat" items="{{elementsObject.items}}" as="item" observe="disabled">
标签: javascript polymer