0

当我已经为每个元素提供服务器端时,如何为每个客户端提供客户端?

两者都做后有双倍的元素。

这是一个使用旧版本淘汰的修复程序,方法是创建一个绑定处理程序,该处理程序删除 init 上的子元素。任何人都可以使用淘汰赛 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);
4

1 回答 1

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/

于 2013-04-03T03:08:24.320 回答