将第二个模型添加到路由会使第一个未定义

时间:2015-02-09 18:53:41

标签: ember.js

在我目前的Ember设置中,我检索了Index Route的商店。这很好。

 App.IndexRoute = Ember.Route.extend({

    model: function(){      
          var store = this.store.find('index');        
          return store;
        }

  });

但是,我希望为同一路径创建一个自定义表单对象,因此遵循this SO answer的建议尝试返回索引路由的两个模型,但是,我现在得到错误

Error while processing route: index that is not defined ReferenceError: that is not defined

新代码

  App.IndexRoute = Ember.Route.extend({

    model: function(){      

          return Ember.RSVP.hash({
           store: this.store.find('index'),
           customform: App.CustomForm.create()
          });
       }


  });

如何在此路线中添加第二个模型?

更新 索引模型有一个日期属性,我用它来对索引模型中的项进行排序

App.IndexController = Ember.ArrayController.extend({
        sortProperties: ['date'],
        sortAscending: false,

我最初在html中显示索引模型

    {{#each item in arrangedContent}}
 <li> {{some-component id=item.customid date=item.date data=item.junk}} </li>

    {{/each}}

通过添加第二个模型,无论我是否使用商店创建记录,我都会收到此错误,并且商店中的数据未加载到html中

 Error while processing route: index undefined is not a function TypeError: undefined is not a function

另外,我实际上并不需要坚持我想要添加的第二个模型,所以我不想把它变成商店。在我链接的SO答案中,添加了第二个未持久化的模型。

2 个答案:

答案 0 :(得分:1)

看起来您应该使用商店来创建新的自定义表单记录:

App.IndexRoute = Ember.Route.extend({
    model: function(){      
        return Ember.RSVP.hash({
            store: this.store.find('index'),
            customform: this.store.createRecord('customForm')
        });
    }
});

答案 1 :(得分:1)

您将要通过商店创建customForm:

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return Ember.RSVP.hash({
      store: this.store.find('index'),
      customForm: this.store.createRecord('customForm')
    });
  }
});