在knockout.js中为applyBindings实例化视图模型时,绑定会中断
bindings break when instantiating viewmodel for applyBindings in knockout.js
我一定错过了一些非常简单的东西,但我没有看到它。
我有一个简单的视图模型:
var ViewModel = function() {
var self = this;
self.categories = ko.observableArray([{id:'one',display:'ONE'},{id:'two',display:'TWO'}]);
self.show_subcategories_for = function(category){
alert(category.id);
};
};
ko.applyBindings(ViewModel);
和它的HTML:
<div id="categories">
<!-- ko foreach: categories -->
<input type="radio" data-bind="attr: { id: id }, click: show_subcategories_for" name="category" />
<label data-bind="attr: { 'for': id }, text: display"></label>
<!-- /ko -->
</div>
working jsfiddle for it: http://jsfiddle.net/J8VNY/2/
然后我试图排除类别数组,并希望将其传递给视图模型作为参数,knockout会在"show_subcategores_for未定义"上出错,这肯定是存在的。
我将视图模型更改为:
var ViewModel = function(cats) {
var self = this;
self.categories = ko.observableArray(cats);
self.show_subcategories_for = function(category){
alert(category.id);
};
};
ko.applyBindings(new ViewModel(
[{id:'one',display:'ONE'},{id:'two',display:'TWO'}]
));
下面是jsfiddle与错误:http://jsfiddle.net/J8VNY/1/
一切似乎都是正确的,但由于某种原因,实例化viewmodel并将其作为参数传递给数组会引起一些混乱。
如有任何见解将不胜感激。谢谢你
您必须使用$root
关键字:
<input type="radio"
name="category"
data-bind="attr: { id: id }, click: $root.show_subcategories_for" />
看到文档
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 无法通过数组映射绑定
- NG-重复中断指令模型绑定
- AngularJS数据绑定中断ngRepeat+奇怪行为
- 当通过Ajax成功回调更新可观察数组时,启用绑定中断
- 如何在Angular中首次渲染后中断数据绑定
- 绑定存储中断组合框
- 使用 jquery ui 对话框时,Ember 中的双向绑定中断
- 更改值后,文本区域上的ng绑定中断
- 为什么角度绑定在传入时会中断指令之间的绑定
- 使用具有全局值的Javascript replace()时,ng绑定html中断
- 如果以异步方式加载绑定的资源,则函数中的$watch/$timeout包装会中断双向绑定
- KnockOut绑定在移动DOM元素后中断
- KnockoutJS +聚合物:绑定中断(Chrome之外)
- Angular ng-pattern会导致绑定中断
- 在knockout.js中为applyBindings实例化视图模型时,绑定会中断
- 在SVG命名空间中创建元素时绑定中断[使用JSFiddle]
- 销毁手风琴绑定中断
- Angular-ngResource中断数据绑定
- Ember.js:原生输入类型="number"约束值时绑定中断