的一个AfterRender knockout.js的文档,我不清楚。 什么是它的目的和我们有如何使用它? 有哪些主要用途的例子吗?
Answer 1:
敲除AfterRender阶段在每次的foreach块被复制并插入到文档时调用,当两者的foreach首先初始化,并且当新的条目被稍后添加到相关联的阵列。 当有同时使用foreach参与重逻辑这可能是昂贵的。
afterAdd -就像一个AfterRender,除了它是只有当新的条目添加到您的数组引用(而不是当在你的阵列的初始内容的foreach第一迭代)。 对于afterAdd一个常见的用途是调用如jQuery的$(れ).fadeIn()的方法,让你得到过场动画时添加的项目。
使用afterAdd如果你只需要代码后,“新”项目已被添加到阵列中运行。
为了避免每个项目添加到UI后运行的代码的这种昂贵的形式,创建一个自定义绑定处理程序的页面加载后运行。
下面是一个我用来隐藏在页面加载的形式。 当然,你可以告诉它你想进行初始化和更新选项是什么。
示例代码:
ko.bindingHandlers.pageLoad = {
init: function (element, valueAccessor, allBindingsAccessor, data, context) {
var value = ko.unwrap(valueAccessor());
$(element).hide(value);
},
update: function (element, valueAccessor, allBindings) {
}};
另外,请查阅:afterRemove,beforeMove和afterMove 这里 !
标记所选元素:
data-bind="pageLoad: function() { hideForm() }"
JavaScript代码:
self.hideForm = function () {
$("#form").hide("slide", 500);
};
文章来源: How does knockout.js afterRender work?