WinJS绑定不会更新

时间:2012-11-28 10:38:36

标签: javascript windows windows-8 winjs

我想简单地将html元素的textContent绑定到数据字符串。我要做的是:

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

代码使用

定义名称空间数据
WinJS.Namespace.define("Data", {
    currentDateString: currentDateString,
});

其中currentDateString定义为:

var currentDateString = "Monday";

在页面的ready函数中,我调用了WinJS.Binding.processAll();.这会将HTML的内容设置为字符串。但HTML不会更改字符串的更改。我想我必须触发一些字符串确实改变的事件。我该怎么办呢?是否有一个简单的方法,因为有列表数据源的WinJS.Binding.List?

1 个答案:

答案 0 :(得分:4)

您的对象需要是可观察的,您的属性在命名空间上定义的不是。

您的代码需要像这样更改:

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

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

当赋值执行时,它将改变值。

还有其他可观察对象的助手,例如WinJS.Binding.define