this.resource显示空白页面,但返回模型(使用console.log())

时间:2014-10-08 08:33:48

标签: ember.js

我目前正在使用Yeoman Ember Generator构建一个ember应用程序。

这是我的模板文件夹结构如下:

template
   |---requisitions
          |---draft.hbs
          |---pending.hbs
          |---waiting.hbs
    requisitions.hbs
    app.hbs
    application.hbs

这是我的router.js

Metabuyer.Router.map(function () {
    this.route('app');
    this.resource('requisitions', function(){
        this.resource('draft');
        this.resource('pending');
        this.resource('waiting');
    });
});

在我的DS.Store中,我有一个工作正常的申请模型。

Metabuyer.RequisitionsRoute = Ember.Route.extend({
    model: function () {
        return this.store.findAll('requisition');
    }
});

草稿,待处理和等待路线共享相同的申请模型,但根据需要对其进行过滤,如下所示

Metabuyer.DraftRoute = Ember.Route.extend({
model: function(params){
    var filterResult = this.store.filter('requisition', function(requisition){
        return requisition.get('state') === 'draft';
    });
    console.log(test);

    return filterResult;
    });
}

});

我的问题是。 当我在我的路由器中使用this.resource('draft')时,我的页面(空白页面)中没有呈现任何内容,但在我的控制台中,正在返回过滤的对象。

如果我使用this.route('draft')页面已呈现,但页面内容未被过滤,或者我应该说,我的Metabuyer.DraftRoute未被调用。

非常感谢你的帮助,:'(

1 个答案:

答案 0 :(得分:3)

http://emberjs.com/guides/routing/defining-your-routes/

  

嵌套在资源下的路由采用资源名称及其名称作为路由名称。

父路线也需要索引路线。

导航到/requistions加载RequesitionsRouteRequisitionsIndexRoute,您需要在RequisitionsIndexRoute上设置模型并使用RequisitionsIndexController等。您需要将requisitions.hbs重命名为index.hbs并将其移至申请目录。

您还需要为您的草稿路线对象名称添加前缀,以使DraftRoute变为RequisitionsDraftRoute,对于控制器,视图等也是如此。