Привязка WinJS не обновляется

Я хочу просто привязать textContent элемента html к строке данных. Что я делаю для этого:

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

Код определяет пространство имен Data с

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

где currentDateString определяется как:

var currentDateString = "Monday";

В готовой функции страницы я вызываю WinJS.Binding.processAll();. Это устанавливает содержимое HTML в строку. Но HTML не обновляется при изменении строки. Я думаю, что мне нужно вызвать какое-то событие, когда строка действительно изменилась. Как бы я это сделал? Есть ли простой способ, поскольку есть WinJS.Binding.List для списка источников данных?


person Nicholas    schedule 28.11.2012    source источник


Ответы (1)


Ваш объект должен быть наблюдаемым, а ваше свойство, определенное в пространстве имен, — нет.

Ваш код должен измениться следующим образом:

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

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

Когда присваивание выполняется, оно изменит значение.

Есть и другие помощники для наблюдаемых, например WinJS.Binding.define

person Dominic Hopton    schedule 28.11.2012