gpt4 book ai didi

javascript - EmberJS : ArrayController -> ArrayController -> ObjectController error

转载 作者:行者123 更新时间:2023-11-30 17:49:00 25 4
gpt4 key购买 nike

我在添加一个数组 Controller 作为另一个数组 Controller 的项目 Controller 时遇到问题。

我得到的错误是:

Error while loading route: TypeError {} ember.min.js:15
Uncaught TypeError: Object # has no method 'addArrayObserver'

JSFiddle:http://jsfiddle.net/t5Uyr/3/

这是我的 HTML:

<script type="text/x-handlebars">
<table>
<thead>
<tr>
<th>id</th>
<th>items</th>
</tr>
</thead>
<tbody>
{{#each}}
<tr>
<td>{{id}}</td>
<td>
<ul>
{{#each items}}
<li>{{formattedName}}</li>
{{/each}}
</ul>
</td>
</tr>
{{/each}}
</tbody>
</table>
</script>

如您所见,在模板中,我在每个循环中迭代数据集合,在每个循环中,我想迭代数据的子集合。

这是我的 JS 代码:

window.App = Ember.Application.create({});

App.ApplicationRoute = Ember.Route.extend({

model: function () {

var data = [
{
id: "111",
items: [
{
name: "foo"
},
{
name: "bar"
}
]
},
{
id: "222",
items: [
{
name: "hello"
},
{
name: "world"
}
]
}
];

return data;

}

});

App.ApplicationController = Ember.ArrayController.extend({

itemController: "row"

});

App.RowController = Ember.ArrayController.extend({

itemController: "item"

});

App.ItemController = Ember.ObjectController.extend({

formattedName: function () {
return "My name is " + this.get("name");
}.property("name")

});

最佳答案

App.RowController 应该是一个 objectController 你的项目(行)是在它们的一个属性中有一个数组的对象,而不是数组本身......您可以直接在内部 each 中分配 Controller ,并从 App.RowController 中删除 itemController。

JavaScript

App.RowController = Ember.ObjectController.extend()

Handlebars

{{each items itemController='item'}}

JsFiddle http://jsfiddle.net/mUJAa/3/

关于javascript - EmberJS : ArrayController -> ArrayController -> ObjectController error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19499764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com