knockout.js的afterRender文档对我来说并不清楚。 它的目的是什么,我们如何使用它? 有哪些主要用法示例?
答案 0 :(得分:0)
每次foreach块复制并插入到文档中时,都会调用Knockout afterRender ,无论是在foreach首次初始化时,还是在以后将新条目添加到关联数组中时。当使用foreach时涉及重度逻辑时,这可能会很昂贵。
afterAdd - 类似于 afterRender ,但只有在将新条目添加到数组时才会调用它(而不是在foreach首次迭代数组的初始内容时调用)。 afterAdd 的一个常见用法是调用jQuery的$(domNode).fadeIn()等方法,以便在添加项目时获得动画转换。
如果您只需要在向阵列中添加“新”项目后运行代码,请使用 afterAdd 。
要在每个项目添加到UI后避免使用这种昂贵的运行代码,请创建一个自定义绑定处理程序,以便在加载页面后运行。
下面是我用来隐藏pageLoad上的表单。当然,您可以通过初始化和更新选项告诉它做您想做的事。
示例代码:
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 here!
所选元素的标记:
data-bind="pageLoad: function() { hideForm() }"
javascript代码:
self.hideForm = function () {
$("#form").hide("slide", 500);
};