Javascript KnockoutJS,映射插件,在模型发生更改时得到通知?
我使用knockoutJS的方式如下:Javascript KnockoutJS,映射插件,在模型发生更改时得到通知?,javascript,knockout.js,knockout-mapping-plugin,Javascript,Knockout.js,Knockout Mapping Plugin,我使用knockoutJS的方式如下: var messagesFromServer = getJSONData().messages; //this get msgs from server ko.mapping.fromJS(messagesFromServer, {}, myobject.viewModel.Messages); 然后,我基本上每三秒钟调用一次这个函数来更新html表,它工作得很好,若从服务器找到新数据,就会添加新行。现在,我想在实际发生更改时添加自定义回调,例如在发现新
var messagesFromServer = getJSONData().messages; //this get msgs from server
ko.mapping.fromJS(messagesFromServer, {}, myobject.viewModel.Messages);
然后,我基本上每三秒钟调用一次这个函数来更新html表,它工作得很好,若从服务器找到新数据,就会添加新行。现在,我想在实际发生更改时添加自定义回调,例如在发现新消息时
我应该如何实现这一点
谢谢你
-hk您可以将这两个对象转换为json,然后比较它们的json字符串
var messagesFromServer = getJSONData().messages; //this get msgs from server
var newString = ko.toJSON(messagesFromServer);
var oldString = ko.toJSON(myobject.viewModel.Messages);
if(newString != oldString ) {
// something new
}
ko.mapping.fromJS(messagesFromServer, {}, myobject.viewModel.Messages);
我希望它能有所帮助。如果
消息是数组,您可以使用ko.utils.comparararrays
检测更改并自行引发自定义事件。下面是比较ko.observearray()
的代码示例。寻找