У меня есть эта функция:ViewModel не обновляется при вызове обновления функции()
function updatedata(data)
{
var obj = jQuery.parseJSON(data);
if(obj.hasOwnProperty('request_type'))
{
if (obj.request_type == 'client_information')
{
var ViewModel = function (Clients) {
var self = this;
this.Clients = ko.mapping.fromJSON(JSON.stringify(Clients));
};
var info = new ViewModel(obj.clients_information);
ko.applyBindings(info);
}
}
}
HTML:
<ul id="mychats" data-bind="foreach: Clients" data-role="listview">
<li class="not_selected" data-bind="id: chatid, text: client_name"></li>
</ul>
Функция называется время от времени, он может правильно привязать данные к ul, когда его вызывают в первый раз, но не тогда, когда его называют более одного раза.
Если вы вызывали 'updatedata' более одного раза, вы могли бы вызвать вызов' ko.applyBindings' более одного раза, что обязательно приведет к ошибке. Вы проверили консоль? Кроме того, любой шанс, что вы можете немного переписать код в своем вопросе, чтобы он воспроизводил ваш сценарий? – Jeroen
Кроме того, вы должны прочесть прочитав [документацию по сопоставлению] (http://knockoutjs.com/documentation/plugins-mapping.html), у него есть информация о том, как обновлять модели представлений, созданные с помощью этого плагина. – Jeroen