淘汰foreach服务器端

时间:2013-04-03 01:02:39

标签: knockout.js

当我已经在服务器端部署了元素时,如何为每个客户端提供支持?

两者都有两倍的元素。

通过创建一个绑定处理程序来删除init上的子元素,这是一个使用旧版knockout的修复程序。任何人都可以使用淘汰2.1吗?

http://jsfiddle.net/4f9N2/4/

var viewModel = {
    countries : [
        { name: 'UK' },
        { name: 'France' },
        { name: 'USA' }
    ]
}

ko.bindingHandlers.serverForEach = {
    init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
        // clear the list first
        $(element).children().remove();
    },
    update: function(element, valueAccessor, allBindingsAccessor, viewModel) { 
        ko.bindingHandlers['template'].update(element, valueAccessor, allBindingsAccessor, viewModel);
    }
};

ko.applyBindings(viewModel);

1 个答案:

答案 0 :(得分:3)

template绑定包括还需要调用的init函数。您还可以简化包装template处理函数的方式。

ko.bindingHandlers.serverForEach = {
    init: function(element) {
        // clear the list first
        $(element).children().remove();
        return ko.bindingHandlers.template.init.apply(this, arguments);
    },
    update: ko.bindingHandlers.template.update
};

示例:http://jsfiddle.net/mbest/4f9N2/12/