数据绑定在视图模型上不起作用
data-bind didnt work on view model
这是一个简单的视图模型
var Cake=function(id,name,price,image)
{
this.id=ko.observable(id);
this.name=ko.observable(name);
this.price=ko.observable(price);
this.image=ko.observable(image);
};
var oldCakes=ko.observableArray(
[
new Cake('HSJ525','Name of the Cake',54.30,'http://placehold.it/160x100'),
new Cake('HSJ526','Other Cake',64.30,'http://placehold.it/160x100'),
new Cake('HSJ527','Another roquefort',84.30,'http://placehold.it/160x100'),
new Cake('HSJ528','AndTheLast',44.30,'http://placehold.it/160x100'),
])
var viewModel=function()
{
var self=this;
self.cakeBox=oldCakes;
}
window.view_model = new viewModel();
ko.applyBindings(window.view_model);
这是Html
div.span12(data-bind='foreach:cakeBox')
div.row-fluid
div.span4
span(data-bind='text:$data.cakeBox().name()')
这就是错误
Uncaught Error: Unable to parse bindings.
Message: TypeError: Object [object Object] has no method 'cakeBox';
Bindings value: text:$data.cakeBox().name()
为什么???
假设您的HTML看起来像这样
<div data-bind="foreach:cakeBox">
<span data-bind="text:$data.cakeBox().name()"></span>
</div>
那么问题出在第二个数据绑定上。当您执行foreach
绑定时,该块中的所有绑定都将获得foreach中当前元素的上下文。所以$data
指的是数组中的一个成员。
它应该是什么样子:
<span data-bind="text:name"></span>
因为name
是当前绑定上下文的一个属性。
替换:
data-bind='text:$data.cakeBox().name()
通过
data-bind='text:name'
相关文章:
- 角度无线电按钮ng模型不起作用
- 初始化ng模型时,Angular ui选择占位符不起作用
- 角度去抖动(ng模型选项)不起作用
- ng模型在$(element).clone()之后不起作用
- 如果条件在代码点火器的模型中不起作用
- 挖空.js嵌套视图模型不起作用
- 为什么我的视图模型不起作用
- 使用嵌套ng中带有单选按钮的ng模型重复不起作用
- 当使用jQuery设置值时,ng模型不起作用
- 有角度的ng模型在ng重复中不起作用
- Select选项包含在验证模型MVC时不起作用
- 自定义主干.模型操作不起作用
- ArangoDB Foxx 模型日期时间戳不起作用
- 角度ng模型不起作用
- jQuery 模型弹出窗口不起作用
- 猫鼬导入模型不起作用
- 以编程方式更改模型时,ngChange 不起作用
- 角度JS模型更新不起作用
- 使用 JavaScript 复制模型的输入文本不起作用
- 在使用具有隔离作用域的指令时保存模型值不起作用