我正在使用动态模板名称。所以我不能根据一些选定的值更换模板。我想要做的是在渲染新的模板元素之前淡出(或用于该元素的任何动画)旧模板元素。如果你迭代一个列表而不是根模板本身,就有这个概念。有没有人试过这个或得到这个工作?Animating KnockoutJS模板更改
1
A
回答
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();
});
}
};
-1
有一个非常好的例子here。
你需要做的基本上是在渲染模板之前添加动画代码,你会看到他们如何创建一个自定义出价来调用动画代码,我认为你应该做类似的事情,如果你把你的代码的一个例子我可能能够帮助你更多。
+0
请阅读我的文章:
你可以很容易的动画这样的模板:
<button data-bind="click: toggleTemplate">Toggle template</button> <ul id="container" data-bind="template: { name: templateToUse, foreach: items }"> </ul> <script type="text/html" id="myTemplate1"> <li data-bind="text: $data" class="animated fadeInLeft"></li> </script> <script type="text/html" id="myTemplate2"> <li class="animated fadeInLeft" >Value is: <span data-bind="text: $data"></span></li> </script>
和VM来模拟模板更改。您链接的文章仅用于收集,也可以不是整个模板的数组。 –
1
我想我分享我做了什么,当我面对这个需要和想要一个干净的解决方案,并没有查询股价太多与我的观点或观看模型。我碰到一个叫做Just Add Water CSS的css框架。
动画在旧版浏览器上不起作用,但我猜想看起来好像UI并不是。但是框架的前提是定义了许多有用的css3动画类,您只需在需要时添加它们即可。完全发布的答案之前
function vm(){
var self = this;
self.items = ko.observableArray([1,2,3,4,5,6]);
self.templateSwitch = ko.observable(false);
self.toggleTemplate = function(){
self.templateSwitch(!self.templateSwitch());
}
self.templateToUse = function(){
return self.templateSwitch() ? "myTemplate2" : "myTemplate1";
}
}
ko.applyBindings(new vm());
相关问题
- 1. 匿名模板knockoutJS
- 2. KnockoutJS动态模板
- 3. 在jQuery模板中使用KnockoutJS模板
- 4. Javascript字符串模板vs knockoutjs模板
- 5. KnockoutJS模板忽略'controlsDescendantBindings'
- 6. Knockoutjs与mapping.fromJS和模板
- 7. Highlight.js应用于knockoutjs模板
- 8. KnockoutJS - 点击模板事件
- 9. knockoutjs如果和模板
- 10. KnockoutJS和递归模板
- 11. KnockoutJS observableArray与模板和foreach
- 12. knockoutjs jqauto错误从模板
- 13. 如何knockoutjs嵌套模板
- 14. 更改Moodle模板
- 15. phpDocumentor - 更改模板
- 16. phpFox模板更改
- 17. Animating View.scrollTo(...)
- 18. Animating Viewcontroller
- 19. dismissViewControllerAnimated:not animating
- 20. angularjs模式更改模板?
- 21. 模板绑定更改时不会更改模板
- 22. KnockoutJS验证模板和多模式
- 23. Android animating recyclerview
- 24. 更改模板参数C++
- 25. 将WordPress模板更改为
- 26. LongListSelector更改项目模板
- 27. 更改项目的模板
- 28. 更改默认Dreamweaver模板
- 29. 更改django模板路径
- 30. 更改MonoDevelop封装模板
我调整了它与文本绑定一起使用,并且需要在更新处理程序中使用'ko.unwrap(valueAccessor())',否则它将不会被调用。 – jdasilva