我知道你不应该在使用Knockout JS的模型中进行DOM操作,而推荐的方法是使用ko.bindingHandler.myDomManipulatingHandler。但是如果模型中的方法调用ajax然后必须更新数据并操纵DOM,那该怎么办呢?
我该怎么做但仍保持干净的分色?
ViewModel = function ()
{
var self = this;
self.saveToServer = function ()
{
$.ajax(
{
url: "url to server",
success: function ()
{
// data change code
// dom manipulation code
}
});
};
};
答案 0 :(得分:0)
这很大程度上取决于你需要做的特定DOM操作,但似乎你可以只更新相应的observable。
var self = this,
self.data = ko.observableArray();
/* snip */
success: function () {
ko.utils.arrayForEach(self.data(), function () {
/* update values here */