Я хочу обновить ui с помощью нокаута js binding. Я могу обновить список, но изменения не отражаются в ui. Я получаю следующее сообщение об ошибке:Обновить элемент html с нокаутом js binding
Uncaught Error: You cannot apply bindings multiple times to the same element.
Ниже мой код: Когда я проверить длину массива, оповещение показывает массив обновляется, но я хочу, чтобы изменения, которые будут отражены в пользовательском интерфейсе также.
<!DOCTYPE html>
<html>
<head>
<script src="js/knockout-3.0.0.js"></script>
<script>
var Person = [ {
name : "qwe qwe",
number : 123123123
}, {
name : "asd asd",
number : 999999999
} ];
var myVM = function() {
this.persons = ko.observableArray(Person);
}
function init() {
alert(Person.length);
ko.applyBindings(new myVM());
}
function AddPerson()
{
PushToArray(Person,"name","123");
init();
}
function PushToArray(array, var1, var2) {
array.push({
name : var1,
number : var2
});
}
</script>
</head>
<body onload="init()">
<div>
<button onclick="AddPerson()">Add</button>
<div data-bind="foreach:persons">
<p data-bind="text:name"> </p>
</div>
</div>
</body>
</html>
вам не нужно вызывать ko.applyBindings (новый myVM()) при добавлении человек, это должно быть сделано только один раз – Cris
Спасибо, человек, ваше предложение сработало – mayurd