2013-01-05 82 views
1

我想在包/文件夾中組織我的視圖以避免長列表。使用(很棒的)新路由器,默認情況下會提供一個視圖,我們可以通過使用約定名稱創建一個新視圖來更改視圖。例如:使用新的EmberJS路由器組織視圖和控制器

match('/').to('home'); 

用途:

  • 「家」 的車把模板
  • App.HomeView
  • App.HomeController

現在我想用:

  • 「my_package /家」 車把模板(作品)
  • App.MyPackage.HomeView
  • App.MyPackage.HomeController

當我用寶石 「燼護欄」(Git版本)和發電機:

rails g ember:view my_package/home 

我得到:

DemoEmberRails.MyPackage::HomeView = Ember.View.extend({ 
}); 

這不是一個合作正確的JavaScript代碼(似乎是對Ruby代碼的提取)。

我想:

DemoEmberRails.MyPackage = {}; 
DemoEmberRails.MyPackage.HomeView = Ember.View.extend({ 
}); 

但它不使用路由器。

如何做到這一點?

回答

0

我想你應該命名空間他們使用Ember.Namespace。我仍然不確定路由器是否會自動搜索命名空間,但它可能?

http://emberjs.com/api/classes/Ember.Namespace.html

+0

我儘量只應用程序的定義之後創建命名空間App.MyPackage,但它不工作。謝謝你的幫助。 –

+0

您可能必須爲每個名稱空間定義一個單獨的路由器。 App.MyPackage.Router。 Ember.Application只是Ember.Namespace本身的擴展版本。 – kstevens715

0

正如你所說

match('/').to('home'); 

預計AppName.HomeRouteAppName.HomeViewAppName.HomeController。所以,如果你有data-template-name="home"模板和

AppName.HomeView = Ember.View.extend({ 
    teplateName: 'home' 
}); 

相似的視圖,然後餘燼會自動加上此視圖連接/路線。

新的ember routing guides在這裏很有幫助。

+0

我會有應用程序。 ** MyPackage ** .HomeX,而不僅僅是App.HomeX通過包對視圖和控制器進行分組。 –