Knockoutjs:关于嵌套的dom绑定
knockoutjs: about nested dom bindings
关于嵌套的dom绑定
http://jsfiddle.net/sxd1140/XWvYk/1/只能这样
https://github.com/hunterloftis/knockout.namespaces或有其他方法解决
如果您需要混合多个视图模型,那么名称空间插件可能是最好的解决方案。
典型的答案是有一个主视图模型和子视图模型,并绑定到主视图模型。如:
var viewModel = {
body: {
click: function() { alert("body"); }
},
div: {
click: function() { alert("body"); }
}
};
ko.applyBindings(viewModel);
现在,您必须将单击绑定到body。点击并点击。
典型的模式是这样做的:
var viewModel = {
body: ko.observable(),
div: ko.observable()
};
现在,你将使用模板绑定,它不会呈现任何东西,如果可观察对象是null,将允许你指定click
而不是div.click
,因为你将传递视图模型作为模板绑定的data
参数。然后,如果/当子视图模型被填充(可能通过AJAX), UI将更新。绑定应该是这样的:
<div data-bind="template: { name: 'main', data: body, templateOptions: { div: div } }"></div>
<script id="main" type="text/html">
<button data-bind="click: click">body</button>
<div id="a" data-bind="template: { name: 'div', data: $item.div }"></div>
</script>
<script id="div" type="text/html">
<button data-bind="click: click">div</button>
</script>
使用templateOptions将"div"视图模型传递给嵌套模板,以表明您不需要依赖具有全局作用域的viewModel(不需要访问viewModel)。
示例如下:http://jsfiddle.net/rniemeyer/7ZsGK/
相关文章:
- Mobile Safari、jQuery以及绑定到未来的DOM元素
- dom元素与javascript变量的绑定
- Ember.js:通过绑定/模型查找DOM元素
- 动态创建的DOM元素上的jQuery事件绑定
- 如何将 DOM 元素绑定到自定义 $.touchpress 事件
- 当元素在事件绑定后附加到DOM时,触摸事件不起作用
- 在表单提交将DOM的一部分替换为分部之后,我应该将ajax成功绑定到什么来使我的javascript工作
- 如果移除并重新添加DOM元素,则ng单击绑定丢失
- jQuery绑定了没有DOM元素的AJAX事件
- AngularJS-$scope不绑定到DOM
- 如何将事件绑定到没有DOM对象的函数
- 为什么 DOM 事件处理程序中的嵌套函数会修复“this”绑定
- 如何在 Javascript 中处理同一 dom 上的 click 和 dblclick 事件绑定
- 直接绑定到 DOM,而不是事件
- DOM 绑定错误:未定义侦听器方法
- AngularJS :如何创建DOM并绑定到基于任意分层数据的模型
- 在dom绑定处捕获自定义事件
- Knockoutjs:关于嵌套的dom绑定
- dom绑定中的纸张输入绑定
- Dom绑定没有在滚动事件中更新离子内容