虽然我不是Web开发的新手,但我对客户端MVC框架还是一个新手.我做了一些研究,并决定试一试EmberJS.我浏览了TodoMVC指南,这对我来说很有意义......
我已经设置了一个非常基本的应用 索引路由,两个模型和一个模板.我有一个服务器端PHP脚本运行,返回一些数据库行.
让我感到困惑的一件事是如何在同一条路线上加载多个模型.我已经阅读了一些关于使用setupController的信息,但我仍然不清楚.在我的模板中,我有两个表,我试图加载不相关的数据库行.在一个更传统的Web应用程序中,我刚刚发布了sql语句并循环遍历它们以填充行.我很难将这个概念翻译成EmberJS.
如何在同一路线上加载多个不相关数据模型?
我正在使用最新的Ember和Ember Data库.
虽然第一个答案给出了处理它的方法,但第二个答案解释了何时适当,以及何时不合适的不同方法.
我有很多其他人将我的余烬应用程序升级到最新版本的任何东西,但升级后,我的应用程序仍然无法正常工作.
我已经简化了很多,归结为我的路线.我的路线是这样的(如过渡指南中所建议的):
App.BoxesRoute = Ember.Route.extend({
model: function(){
return this.store.find('box');
}
});
Run Code Online (Sandbox Code Playgroud)
非常简单,什么都不应该是错的,对吧?我的模型看起来像这样:
App.Box = DS.Model.extend({
enabled: DS.attr('boolean'),
updatedAt: DS.attr('date'),
boxMeters: DS.hasMany('App.BoxMeter')
});
Run Code Online (Sandbox Code Playgroud)
App.BoxMeter非常相似,但关键是在升级到1.0.0之前所有这些都有效.
我脸上抛出了几个错误.他们是:
Assertion failed: No model was found for 'App.Box' ember.js?body=1:394
Error while loading route: TypeError {} ember.js?body=1:394
Uncaught TypeError: Cannot set property 'store' of undefined
Run Code Online (Sandbox Code Playgroud)
这对我来说都没有任何意义.我无数次地看过路线和模型,这只是......很奇怪!我应该怎么解决这个问题?