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 を宣言しています。

<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

あなたはゲッターの後に1行を逃しました。

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

enumerableをtrueに設定することにより、このプロパティでデータバインディングを機能させることができます。

于 2012-09-19T05:32:35.897 に答える