直接键入URL时,Ember无法找到模型

时间:2014-02-27 19:15:20

标签: ember.js ember-data

我正在使用Ember 1.4和EmberData beta 7.我的应用程序有如下所示的路线和模型:

 App.Router.map(function () {
     this.resource('strats', {path: "/"}, function() {
         this.route('strat', {path: "/strat/:strat_id"});
     });
 });

 App.StratsStratRoute = Ember.Route.extend({
    model: function(params) {
        return this.store.find(params.strat_id);
    }
 });

 var attr = DS.attr;
 var belongsTo = DS.belongsTo;
 var hasMany = DS.hasMany;

 App.StratLeg = DS.Model.extend({
     legName: attr(),
     quantity: attr(),
     strat: belongsTo('strat')
 });

 App.Strat = DS.Model.extend({
     stratName: attr(),
     stratLegs: hasMany('stratLeg', {async:true})
 });

我可以通过link-to fine转换到strats.strat路线。例如,如果我通过link-to转换为strats.strat路由,用于id =“dd-put”,则显示URL

http://localhost:8000/em.yaws#/strat/dd-put

一切正常。但是现在如果我点击刷新按钮,或者在第一次转换到不同的路径后输入相同的URL,那么我在浏览器控制台上收到此错误消息并且没有显示任何内容:

 Error while loading route: Error: No model was found for 'dd-put'
   at new Error (native)
   at Error.Ember.Error (http://localhost:8000/js/scripts/ember-1.4.0.js:844:19)
   at Ember.Object.extend.modelFor (http://localhost:8000/js/scripts/ember-data-beta7.js:9762:33)
   at Ember.Object.extend.findAll (http://localhost:8000/js/scripts/ember-data-beta7.js:9364:21)
   at Ember.Object.extend.find (http://localhost:8000/js/scripts/ember-data-beta7.js:9046:23)
   at App.StratsStratRoute.Ember.Route.extend.model (http://localhost:8000/js/app/ed.js:47:27)
   at superWrapper [as model] (http://localhost:8000/js/scripts/ember-1.4.0.js:1239:16)
   at Ember.Route.Ember.Object.extend.deserialize (http://localhost:8000/js/scripts/ember-1.4.0.js:35901:19)
   at http://localhost:8000/js/scripts/ember-1.4.0.js:32521:57
   at http://localhost:8000/js/scripts/ember-1.4.0.js:33000:19 

任何人都知道造成这种情况的原因是什么?

0 个答案:

没有答案