Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么模板div显示为“quot;”:“隐藏的”;在后渲染中?_Javascript_Knockout.js - Fatal编程技术网

Javascript 为什么模板div显示为“quot;”:“隐藏的”;在后渲染中?

Javascript 为什么模板div显示为“quot;”:“隐藏的”;在后渲染中?,javascript,knockout.js,Javascript,Knockout.js,为什么模板div在afterRender中显示为“:hidden” 代码如下: $(文档).ready(函数(){ m=函数(名称) { this.name=名称; } 视图模型={ a:ko.array(), 斯巴基:功能(元素){ div=元素[0]; log($(div).is(':hidden'); }, } 应用绑定(视图模型); viewModel.a.push(新的m('oh-no')); }); ${$data.name} 在foreach模式下为模板绑定调用afterRend

为什么模板div在afterRender中显示为“:hidden”

代码如下:


$(文档).ready(函数(){
m=函数(名称)
{
this.name=名称;
}
视图模型={
a:ko.array(),
斯巴基:功能(元素){
div=元素[0];
log($(div).is(':hidden');
},
}
应用绑定(视图模型);
viewModel.a.push(新的m('oh-no'));
});
${$data.name}

foreach
模式下为模板绑定调用
afterRender
时,元素尚未添加到DOM中。执行一些附加处理以确保有效地添加/删除节点


但是,当使用
foreach
选项在元素位于DOM中后执行代码时,可以使用
afterAdd
回调

foreach
模式下为模板绑定调用
afterRender
时,元素尚未添加到DOM中。执行一些附加处理以确保有效地添加/删除节点


但是,当使用
foreach
选项在元素位于DOM中后执行代码时,可以使用
afterAdd
回调

afterRender
用于

习俗 DOM上的后处理逻辑 由模板生成的元素

但不幸的是,它是在模板准备就绪(应用于DOM)后调用的,但它还没有插入html

如果你使用foreach,击倒将 调用您的afterRender回调以获取 添加到可观察到的每个项目 排列

但是,如果传递模板的数据,if也将被调用一次

KO允许您提供afterAdd和/或 beforeRemove回调操作 中添加/删除的DOM元素 定制方式

因此,将为ObservalArray中的每个添加/删除项调用这些。 当这些被调用时,您的DOM已经准备好了,因此您将不再隐藏它,但是这些回调仅在底层ObservalArray发生更改时才被调用

<div data-bind="template: { name: 'tpl', foreach: a, afterAdd: sparkie }"></div>

后渲染
用于

习俗 DOM上的后处理逻辑 由模板生成的元素

但不幸的是,它是在模板准备就绪(应用于DOM)后调用的,但它还没有插入html

如果你使用foreach,击倒将 调用您的afterRender回调以获取 添加到可观察到的每个项目 排列

但是,如果传递模板的数据,if也将被调用一次

KO允许您提供afterAdd和/或 beforeRemove回调操作 中添加/删除的DOM元素 定制方式

因此,将为ObservalArray中的每个添加/删除项调用这些。 当这些被调用时,您的DOM已经准备好了,因此您将不再隐藏它,但是这些回调仅在底层ObservalArray发生更改时才被调用

<div data-bind="template: { name: 'tpl', foreach: a, afterAdd: sparkie }"></div>