2012-11-28 112 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