Javascript 如何使用';在数据绑定后访问另一个原型对象;与';在淘汰赛中
我使用的是knockoutjs,对象如下: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
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的精彩视频:第二个技巧是关于控制“这个”