天天看点

KnockoutJS 3.X API 第七章 其他技术(6) 使用“fn”添加自定义函数

有时,您可能会通过向Knockout的核心值类型添加新功能来寻找机会来简化您的代码。 您可以在以下任何类型中定义自定义函数:

KnockoutJS 3.X API 第七章 其他技术(6) 使用“fn”添加自定义函数

因为继承,如果你附加一个函数到ko.subscribable,它将可用于所有其他的。 如果你附加一个函数到ko.observable,它将被ko.observableArray继承而不是ko.computed继承。

要附加自定义函数,请将其添加到以下可扩展性点之一:

<code>ko.subscribable.fn</code>

<code>ko.observable.fn</code>

<code>ko.observableArray.fn</code>

<code>ko.computed.fn</code>

然后,您的自定义函数将可用于从该点开始创建的所有类型的值。

注意:最好仅将此可扩展点用于真正适用于各种场景的自定义函数。 如果你只打算使用一次,你不需要添加自定义函数到这些命名空间。

这里有一种方法来定义一个过滤器按属性函数,将在所有后续创建的ko.observableArray实例上可用:

这返回一个新的计算值,它提供了数组的过滤视图,同时保持原始数组不变。 因为过滤的数组是一个计算的observable,所以当底层数组发生变化时,它将被重新计算。

以下实例演示如何使用此:

UI源码:

视图模型源码:

如果你倾向于过滤可观察的数组很多,添加一个filterByProperty全局可见的数组可能会使你的代码更整洁。 但是如果你只需要偶尔过滤,你可以选择不附加到ko.observableArray.fn,而只是手工构造doneTasks如下:

作者:smallprogram

出处:

http://www.cnblogs.com/smallprogram

感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力。欢迎转载!另外,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论!