我想根据第一个颜色名称添加id。但它没有按我的意愿添加,它给出了javascript错误: 未捕获错误:无法解析绑定。 消息:TypeError:undefined不是函数; 绑定值:attr:{id:$ root.colors()[0] .color} 我试过的代码示例。 HTML:
<ul data-bind="foreach: colors">
<li><span data-bind="text:color"></span>
</li>
</ul>
<div data-bind="attr: {id: $root.colors()[0].color}">
Make this div id associated with first color name of colors array.
</div>
淘汰赛:
var ViewModel = function() {
this.self = this;
self.colors = ko.observableArray([{
color: 'red'},
{
color: 'blue'},
{
color: 'yellow'}]);
};
ko.applyBindings(new ViewModel());
答案 0 :(得分:1)
您的视图模型中存在错误 - 您在对象self
上创建了this.self = this
属性,但随后您将其用作本地变量。尝试将其更改为局部变量:
var ViewModel = function() {
var self = this;
self.colors = ko.observableArray([{
color: 'red'},
{
color: 'blue'},
{
color: 'yellow'}]);
};
ko.applyBindings(new ViewModel());