如何在ajax调用后在Knockout JS中进行DOM操作

时间:2013-09-15 18:11:24

标签: javascript jquery ajax dom knockout.js

我知道你不应该在使用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
            }
        });
    };
};

1 个答案:

答案 0 :(得分:0)

这很大程度上取决于你需要做的特定DOM操作,但似乎你可以只更新相应的observable。

var self = this,
    self.data = ko.observableArray();

/* snip */
    success: function () {
        ko.utils.arrayForEach(self.data(), function () {
        /* update values here */