javascript - Knockoutjs - 动态模板切换之间的转换?

标签 javascript html knockout.js

到目前为止,KnockoutJS 非常好用,但我是该框架的新手。我正在尝试创建一个选项卡式的界面,例如4 个链接和一个公共(public)显示区域。单击链接可利用 Knockout 的模板系统并切换模板。这一直很好用,但我想在模板切换之间添加某种动画。

我怎样才能做到这一点?我读过一些关于 beforeRemove/afterAdd 的内容,但这似乎只适用于 observableArrays。我知道 KnockoutJS 支持动画/自定义绑定(bind)(我将它们更直接地用于页面上的其他元素)。

如果我的整个方法不正确,是否有更好的方法来制作标签式界面以轻松实现转换?

这是我现在的代码。

HTML:

<div class="Page">
    <span data-bind="template: {name: current_page()}"></span>
</div>
<script type="text/html" id="Home">
    <!-- Home content -->
</script>
<script type="text/html" id="Tab1">
    <!-- Tab1 content -->
</script>

Javascript(Knockout 的 ViewModel):

this.current_page  = ko.observable("Home")
//later on...
this.current_page("Tab1");

最佳答案

您可以使用 template bindingafterRender 属性:

<span data-bind="template: {name: current_page(), afterRender: animatePageChange }"></span> 

..然后在你的 View 模型上你可以添加任何你喜欢的动画:

animatePageChange: function() { $('#content').hide(); $('#content').fadeIn(3000); }

我在 http://jsfiddle.net/unklefolk/v3JMS/1/ 上整理了一个简单的演示

关于javascript - Knockoutjs - 动态模板切换之间的转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10788793/

相关文章:

javascript - 使图像链接覆盖其顶部的背景图像

html - CSS div 边框差异

javascript - 添加事件监听错误

复选框勾选值绑定(bind)

javascript - 如何使用基于 token 的身份验证从 ExtJS 调用 Web API

javascript - JavaScript 中的 IsControl

javascript - 如何在处理过程中停止、中止或取消 ApplyBindings?

javascript - 使用 onclick 或与 KnockoutJS 的点击绑定(bind)传递参数

javascript - 框架7 : Navbar hidden when I'm move to anothers views

javascript - Bxslider 从寻呼机中删除点并将它们替换为数字,例如 4 中的 1 和 next-prev 链接