Knockoutjs实战开发:控制子绑定(control descendant bindings)
<div id="cnblogs_post_body">在上一篇文章中我们介绍了如何来创建一个自定义绑定,今天我们就继续来学习如何来控制子绑定(control descendant bindings)。在此之前我们首先说明一下,此项功能相对来说比较高级,通常我们在创建自己的可重用的库时我们才会使用,不是说当我们在使用Knockoutjs创建我们的应用时一定要使用此项功能的。在默认情况下,一个绑定只对它所绑定的element元素起作用。但是如果我们想要此绑定对它所绑定的element的所有子element起作用我们应该怎么办呢?我们在自定义binding的时候我们可以告诉Knockoutjs不绑定他的子元素,这样我们自己定义的绑定就可以以我们喜欢的方式任意绑定了。我们只需要在init函数中返回{ controlsDescendantBindings: true }即可
一、控制是否对子绑定起作用
我们来举一个非常简单的例子,我们自定义一个绑定名为:allowBindings,这样如果他的值为true的话我们就进行子绑定。如果他的值为false则不会对子绑定起任何作用。
<div class="cnblogs_code">1 <script type="text/javascript">2 ko.bindingHandlers.allowBindings = {3 init: function (elem, valueAccessor) {4 // Let bindings proceed as normal *only if* my value is false 5 var shouldAllowBindings = ko.utils.unwrapObservable(valueAccessor());6 return { controlsDescendantBindings: !shouldAllowBindings };7 }8 };9 </script>
页:
[1]