动画KnockoutJS模板更改

Mat*_*orn 1 knockout-2.0 knockout.js

我正在使用动态模板名称.所以我不能根据一些选定的值更改模板.我想要做的是在渲染新模板元素之前淡出(或者是该任何动画)旧模板元素.如果您在列表上进行迭代而不是根模板本身,则有这个概念.有没有人试过这个或让它工作?

sro*_*oes 8

你可以编写自己的绑定处理程序:

ko.bindingHandlers.fadeTemplate = {
    init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
        return ko.bindingHandlers['template']['init'](element, valueAccessor, allBindings);
    },
    update: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
        var value = valueAccessor();
        $(element).fadeOut(function() {
            ko.bindingHandlers['template']['update'](element, valueAccessor, allBindings, viewModel, bindingContext);
            $(this).fadeIn();
        });
    }
};
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/xP7uy/