3

在 WinJS 中,我可以在 listView 中绑定属性获取器吗?假设我有一个这样定义的对象:

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

4

1 回答 1

7

在你的吸气剂之后你错过了一行。

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

通过将 enumerable 设置为 true,您可以使数据绑定在此属性上起作用。

于 2012-09-19T05:32:35.897 回答