Knockout.js не обновляющее значение наблюдаемого

#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 привязка, которая должна работать непосредственно с наблюдаемым.