WinJS Databind到属性get / set

时间:2012-09-19 03:56:53

标签: javascript windows-8 winjs

在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控制台中放置一个断点,我可以访问已完成的属性,但是数据绑定似乎不喜欢它...任何想法?

1 个答案:

答案 0 :(得分:7)

你吸气后错过了一行。

get : function() {
  return false;
}
, enumerable: true

通过将enumerable设置为true,可以使数据绑定适用于此属性。