Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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 如何使用';在数据绑定后访问另一个原型对象;与';在淘汰赛中_Javascript_Knockout.js - Fatal编程技术网

Javascript 如何使用';在数据绑定后访问另一个原型对象;与';在淘汰赛中

Javascript 如何使用';在数据绑定后访问另一个原型对象;与';在淘汰赛中,javascript,knockout.js,Javascript,Knockout.js,我使用的是knockoutjs,对象如下: var home = function(){ this.title = 'Home', this.vm = { names: ko.observableArray(), metadata: { startDate: ko.observableArray() } } }; home.prototype.create = function(){ aler

我使用的是knockoutjs,对象如下:

var home = function(){
    this.title = 'Home',
    this.vm = {
        names: ko.observableArray(),
        metadata: {
            startDate: ko.observableArray()
        }
    }
};

home.prototype.create = function(){
   alert('creating');
};

home.prototype.addNewPerson = function(){
    alert(this);
    this.create();
};

return home;
然后在我的HTML中,我将
绑定一起使用:

<div data-bind='with: vm.metadata'>
    <input data-bind='value: startDate' />
    <button data-bind='click: $parent.addNewPerson />
</div>


这是
单击
绑定的预期行为:
将设置为当前“项”,因此在您的情况下,
元数据
对象

有多种方法可以解决此问题:

您可以使用(如果您的浏览器不支持,则Knockout自带自己的版本)将
this
的值固定到视图中的父对象:

<div data-bind='with: vm.metadata'>
    <input data-bind='value: startDate' />
    <button data-bind='click: $parent.addNewPerson.bind($parent) />
</div>
或者,您可以使用本文中描述的事件委派模式:


您还可以查看Ryan Niemeyer的精彩视频:第二个技巧是关于控制“this”

这是
单击绑定的预期行为:
this
将设置为当前“项”,因此在您的情况下
元数据
对象

有多种方法可以解决此问题:

您可以使用(如果您的浏览器不支持,则Knockout自带自己的版本)将
this
的值固定到视图中的父对象:

<div data-bind='with: vm.metadata'>
    <input data-bind='value: startDate' />
    <button data-bind='click: $parent.addNewPerson.bind($parent) />
</div>
或者,您可以使用本文中描述的事件委派模式:

你也可以看看Ryan Niemeyer的精彩视频:第二个技巧是关于控制“这个”