在WinJS中,我可以在listView中绑定属性getter吗?假设我有一个像这样定义的对象:
var MyLib = MyLib || {};
MyLib.ToDoItem = function() {
this.name = '';
this.description = '';
Object.defineProperty(this, "completed", {
get : function() {
return false;
}
});
}
MyLib.ToDoList = [];
//MyLib.ToDoList.push....add todo items
我声明一个WinJS.Binding.Template,其中除了使用属性getter定义的属性之外,所有属性都是绑定的:
<div id="myItemTemplate" data-win-control="WinJS.Binding.Template">
<div class="titleTile">
<h4 class="item-title" data-win-bind="textContent: name"></h4>
<p data-win-bind="textContent: description"></p>
<div data-win-bind="textContent: completed"></div> <-- Renders as undefined
</div>
</div>
“已完成”属性呈现为未定义。如果我在我正在加载数据的javascript控制台中放置一个断点,我可以访问已完成的属性,但是数据绑定似乎不喜欢它...任何想法?
答案 0 :(得分:7)
你吸气后错过了一行。
get : function() {
return false;
}
, enumerable: true
通过将enumerable设置为true,可以使数据绑定适用于此属性。