Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Knockout.js 为什么foreach数据绑定不创建$parent上下文?_Knockout.js - Fatal编程技术网

Knockout.js 为什么foreach数据绑定不创建$parent上下文?

Knockout.js 为什么foreach数据绑定不创建$parent上下文?,knockout.js,Knockout.js,在下面的代码中,为什么在没有$parent的情况下可以访问remove处理程序 如果我使用data bind=“click:$parent.remove”我会得到一个错误,说未定义的属性remove不存在,但是在foreach循环中,我不应该得到$parent上下文吗 模板: <ul data-bind="foreach:list"> <li><!-- ko text: $data --><!-- /ko --> <button da

在下面的代码中,为什么在没有
$parent
的情况下可以访问
remove
处理程序

如果我使用
data bind=“click:$parent.remove”
我会得到一个错误,说未定义的
属性remove不存在
,但是在foreach循环中,我不应该得到
$parent
上下文吗

模板:

<ul data-bind="foreach:list">
    <li><!-- ko text: $data --><!-- /ko --> <button data-bind="click: remove">x</button></li>
</ul>

在创建viewmodel时,您缺少新的

您的代码应该如下所示:

ko.applyBindings(new ViewModel());
如果不使用
new
引用全局
窗口
对象,因此您的
remove
函数是全局声明的,这就是
$parent
不起作用的原因


演示。

在创建viewmodel时,您缺少新的

您的代码应该如下所示:

ko.applyBindings(new ViewModel());
如果不使用
new
引用全局
窗口
对象,因此您的
remove
函数是全局声明的,这就是
$parent
不起作用的原因


演示。

在创建viewmodel时,您缺少新的

您的代码应该如下所示:

ko.applyBindings(new ViewModel());
如果不使用
new
引用全局
窗口
对象,因此您的
remove
函数是全局声明的,这就是
$parent
不起作用的原因


演示。

在创建viewmodel时,您缺少新的

您的代码应该如下所示:

ko.applyBindings(new ViewModel());
如果不使用
new
引用全局
窗口
对象,因此您的
remove
函数是全局声明的,这就是
$parent
不起作用的原因

演示