#javascript #knockout.js
#javascript #knockout.js
Вопрос:
У меня возникли проблемы с получением Knockout для обновления значения моего наблюдаемого.
Модель:
function AppViewModel() {
var self = this;
self.observable = ko.observable();
self.test = function() {
self.observable("test")
}
};
var model = new AppViewModel();
ko.applyBindings(model);
Вид:
<p>Value of observable: <input data-bind="value: $root.observable()" /></p>
<p>The value is: <span data-bind="text: $root.observable()"></span></p>
Когда я ввожу текст в поле ввода, он должен обновить значение моего наблюдаемого до того, что я ввел, правильно? Но 2-й абзац не обновляет свой текст соответствующим образом.
Спасибо!
Ответ №1:
Удалите круглые скобки в ваших привязках. Вы хотите привязаться к самому наблюдаемому, а не к значению, которое содержит наблюдаемое.
<p>Value of observable: <input data-bind="value: $root.observable" /></p>
<p>The value is: <span data-bind="text: $root.observable"></span></p>
Комментарии:
1. К вашему сведению:
<span data-bind="text: $root.observable()"></span>
вполне приемлемо. Этоinput
привязка, которая должна работать непосредственно с наблюдаемым.