Я хотел бы реализовать функцию выбивки для уже существующей страницы.Поэтому я хочу манипулировать данными ViewModel из существующего скрипта.Я смоделировал пример, но он не работает правильно.
ViewModel правильно привязан к пользовательскому интерфейсу (, попробуйте ввести во ввод ).Это также работает, когда я изменяю данные ViewModel в бэкэнде ( нажатием кнопки ).Однако, когда я снова изменяю входное значение, вводя его в поле ввода, данные не изменяются.
Как можно предварительно изменить данные ViewModel из бэкэнда ( некоторый существующий код манипулирует данными ),Обратите внимание, что в качестве примера я использовал событие нажатия jQuery.Существующий код может манипулировать данными по-разному.
Вот код (HTML):
<!-- View -->
<p>First name: <strong data-bind="text: myName"></strong></p>
<input data-bind="value: myName"></input>
<button>Click me</button>
И JS:
// ViewModel
var AppViewModel = function() {
this.myName= ko.observable("John Doe");
}
// ViewModel instance
var app = new AppViewModel();
// Activates knockout.js
ko.applyBindings(app);
// Custom external code that changes the data in the ViewModel instance
$("button").click(function() {
app.myName= ko.observable("Steve Peterson");
ko.applyBindings(app);
});