Javascript 余烬路由器日志错误:";余烬收藏视图';s内容必须实现Ember.Array“;
这里有一个相当直截了当的余烬问题,(我希望!) 我有一个简单的余烬数据设置。一个应用程序有多个版本。以下是我的应用程序模型:Javascript 余烬路由器日志错误:";余烬收藏视图';s内容必须实现Ember.Array“;,javascript,ember.js,client-side,Javascript,Ember.js,Client Side,这里有一个相当直截了当的余烬问题,(我希望!) 我有一个简单的余烬数据设置。一个应用程序有多个版本。以下是我的应用程序模型: App.App = DS.Model.extend({ name: DS.attr('string'), publicKey: DS.attr('string'), versions: DS.hasMany('App.Version', { key: 'version_ids' }) }); 我的路由器相当简单: App.Router = Ember.Rou
App.App = DS.Model.extend({
name: DS.attr('string'),
publicKey: DS.attr('string'),
versions: DS.hasMany('App.Version', { key: 'version_ids' })
});
我的路由器相当简单:
App.Router = Ember.Router.extend({
location: 'hash',
root: Ember.Route.extend({
index: Ember.Route.extend({
route: '/',
redirectsTo: 'dashboard'
}),
dashboard: ...,
app: Ember.Route.extend({
route: '/:app_id',
connectOutlets: function(router, app) {
router.get('applicationController').connectOutlet('appTest', app);
},
index: Ember.Route.extend({
route: '/',
connectOutlets: function(router) {
appTestController = router.get('appTestController');
appTestController.connectOutlet('addCommentOutlet', 'addComment', {});
appTestController.connectOutlet('versions', appTestController.get('content.versions'));
}
})
})
})
});
视图和控制器如下所示:
App.AppTestView = Ember.View.extend({
templateName: 'app_test'
});
App.VersionsView = Ember.View.extend({
templateName: 'versions'
});
App.AppTestController = Ember.ObjectController.extend({
});
App.VersionsController = Ember.ArrayController.extend({
});
不幸的是,当我运行它时,我得到一个错误:一个Ember.CollectionView的内容必须实现Ember.Array。您通过了
有趣的是,如果我在路由器中的[appTestController.get('content.versions')]
周围添加括号,它不会抱怨并正确地创建一个包含第一个版本对象的数组。但它似乎不想显示多个对象
有什么提示吗?最后,不是模型、视图对象或控制器!甚至不是路由器 它是
版本。把手。我的模板中有一个循环,如下所示:
{{#each version in controller}}
Version here
{{#each comment in version}}
{{comment.text}}
{{/each}}
{{/each}}
我写错了:
each comment in version
。。。我想写的地方是:
each comment in version.comments
:)这解释了错误消息。希望这对其他人有帮助 错误是直截了当的,它说App.Version不是数组的instanceOf,看起来您正试图将一个对象设置为集合视图的内容属性(我在问题中看不到该视图的代码),它的类型是Ember.Array()…如果我错了请清除我这是一件有趣的事情。我想用内容数组发送内容数组:除了appTestController.get('content.versions')
返回的是单个对象而不是数组?!appTestController是ObjectController或ArrayController?&另外,您如何查询存储?ObjectController。我使用的是余烬数据(因此您在这里看到的一切都是我在数据库/存储端得到的一切)。不过我刚想出来!将发布一个答案。作为未来问题的提示:如果您包含一个JSFIDLE来演示您的问题,那么您很可能会得到一个答案。。。