2014-10-08 32 views
1

我目前正在使用Yeoman Ember Generator構建一個應用程序應用程序。this.resource顯示空白頁,但返回模型(使用console.log())

這是我的模板文件夾結構看起來像:

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沒有被調用。

非常感謝你的幫助,:'(

回答

3

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

路由資源下築巢搭資源的名稱加上他們爲他們的路線名稱name

父路由也需要索引路由

因此導航到/requistions加載了RequesitionsRouteRequisitionsIndexRoute您需要將模型設置爲RequisitionsIndexRoute並使用RequisitionsIndexController等。您需要將requisitions.hbs重命名爲index.hbs並將其移至請購單目錄。

您還需要與母公司前綴草稿路由對象的名稱,以便DraftRoute成爲RequisitionsDraftRoute和相同的控制器,視圖等

+0

非常感謝! :) 我很緊張整天看着我的代碼。應該仔細閱讀指南。 – Sukhito 2014-10-08 10:56:26