Knockout.js 了解如何使用绑定获取父对象
我的点击绑定没有调用全名函数 什么是正确的方式来称呼这个Knockout.js 了解如何使用绑定获取父对象,knockout.js,knockout-2.0,Knockout.js,Knockout 2.0,我的点击绑定没有调用全名函数 什么是正确的方式来称呼这个 <div> <div data-bind="with: test.name" > <div> <span data-bind="text:firstName"></span> <span data-bind="text:firstName"></span> <br />
<div>
<div data-bind="with: test.name" >
<div>
<span data-bind="text:firstName"></span>
<span data-bind="text:firstName"></span>
<br />
<div>
<span data-bind="click: $parent.fullName">FullName</span>
</div>
</div>
modal = function(){
var firstName = ko.observable('jhon'),
lastName = ko.observable('deo'),
test = {
name : {
firstName: firstName,
lastName: lastName
},
fullName : function(){
alert(name.firstName() + name.lastName());
}
};
return {
test: test
}
}();
ko.applyBindings(modal);
全名
模态=函数(){
var firstName=ko.observable('jhon'),
lastName=ko.observable('deo'),
测试={
姓名:{
名字:名字,
姓氏:姓氏
},
全名:函数(){
警报(name.firstName()+name.lastName());
}
};
返回{
测试:测试
}
}();
ko.应用绑定(模态);
$parent元属性指的是绑定层次结构中紧靠上方的绑定,而不是视图模型中的父对象。由于with位于主绑定上下文中,$parent引用根视图模型
如果需要访问菜单,可以将其嵌套在另一个绑定中:
<div data-bind="with: test">
<div data-bind="with: name">
[...]
<button data-bind="click: $parent.fullName">Click</button>
</div>
</div>
[...]
点击
或限定从父绑定开始的调用(示例中为模式绑定或根绑定):
点击
关于绑定上下文与模型层次结构的一点说明: 使用原始绑定,当您应用with:test.name绑定时,绑定上下文如下所示:
<body> <!-- binding context: [modal] -->
<div data-bind="with: test.name"> <!-- binding context: [modal|test.name] -->
相反,当应用上面显示的嵌套绑定时,层次结构将更改为:
<body> <!-- bc: [modal] -->
<div data-bind="with: test"> <!-- bc: [modal|test] -->
<div data-bind="with: name"> <!-- bc: [modal|test|name] -->
您的单击事件应如下所示:
<span data-bind="click: $parent.test.fullName">FullName</span>
全名
我已经更新了你请看这段代码为什么你这么做太复杂了,而你可以在SimpleB中这样做,但我如何才能将对象传递给函数,即单击这是一个完全不同的问题,与绑定级别无关。当从单击绑定调用方法时,它将接收当前绑定目标(即$data)作为参数。您可以在您的案例中使用它:
fullname:function(obj){alert(obj.firstName+obj.lastName);}
<span data-bind="click: $parent.test.fullName">FullName</span>