2

我想简单地将 html 元素的 textContent 绑定到数据字符串。我为实现这一目标所做的是:

<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

1 回答 1

4

您的对象需要是可观察的,而您的 property-defined-on-a-namespace 则不是。

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

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

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

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

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

于 2012-11-28T17:37:33.107 回答