2012-11-28 137 views
2

我想簡單地將html元素的textContent綁定到數據字符串。我要做的,以實現這一目標是:WinJS綁定不會更新

<span id="currentDate" data-win-bind="textContent:Data.currentDateString"></span> 

的代碼定義與

WinJS.Namespace.define("Data", { 
    currentDateString: currentDateString, 
}); 

命名空間數據,其中currentDateString被定義爲:

var currentDateString = "Monday"; 

在頁面我的準備功能調用WinJS.Binding.processAll();.這將HTML的內容設置爲字符串。但是HTML不會更新字符串的更改。我想我必須觸發一些事件,那就是字符串確實發生了變化。我會怎麼做呢?有沒有簡單的方法,因爲有列表數據源的WinJS.Binding.List?

回答

4

您的對象需要可觀察,而您的屬性定義的命名空間不是。

你的代碼需要改變這樣的:

WinJS.Namespace.define("Data", { 
    currentDate: WinJS.Binding.as({ 
     asString: currentDateString, 
    }), 
}); 

Data.currentDate.asString = "Another day!"; 

當分配執行時,它會改變的值。

還有其他可觀察的幫手,如WinJS.Binding.define