2013-01-19 76 views
1

使用燼1.0.0-PRE3爲什麼不application.hbs呈現emberjs

我有一個小的應用程序,有這樣的代碼:

window.App = Ember.Application.create() 

App.ApplicationController = Ember.Controller.extend({}) 

App.Router.reopen 
    location: 'history' 

App.Router.map -> 
    @resource 'users', -> 
    @route 'new' 

App.IndexRoute = Ember.Route.extend 
    renderTemplate: -> 
    @render('index') 

這是在模板目錄application.hbs :

<div class='navbar navbar-inverse navbar-fixed-top'> 
    <div class='navbar-inner'> 
    <div class='container'> 
     <div class='nav-collapse collapse'> 
     <ul class='nav'> 
      <li>{{#linkTo 'index'}}Home{{/linkTo}}</li> 
      <li>{{#linkTo 'users.index'}}Users{{/linkTo}}</li> 
     </ul> 
     </div> 
    </div> 
    </div> 
</div> 
<div class='container' id='main'> 
    <div class='content'> 
    <div class='row'> 
     <div class='span12'> 
     <div class='page-header'></div> 
     {{outlet}} 
     </div> 
    </div> 
    </div> 
</div> 

問題是它不呈現此模板。在基礎URL「http://127.0.0.1:3000/」加載應用程序時,它不會引發錯誤。如果我嘗試一個未定義的路由,它會拋出一個錯誤,所以我知道Ember已經加載。

回答

2

您的ember代碼似乎沒有任何問題。我在jsbin上做了一個副本,它工作正常:http://jsbin.com/ipivoz/1/edit

很確定這意味着您的模板沒有被編譯。可以肯定,嘗試添加以下到您的應用程序準備鉤:

window.App = Ember.Application.create({ 
    ready: function() { 
    console.log("Ember.TEMPLATES: ", Ember.TEMPLATES); 
    } 
}); 

灰燼預計編譯車把模板是這個數組英寸如果您打開js控制檯運行上面的jsbin,您會看到數組中有一個模板「應用程序」。我的猜測是,如果你在你的環境中嘗試相同的話,數組將是空的。

有很多方法可以完成,這取決於你的環境。既然你在3000端口上運行,我會猜測那是軌道。在這種情況下,請檢查一下ember-rails gem。到目前爲止,最簡單的短期方法是在HTML頁面中使用script標籤定義模板,就像我在jsbin中完成的一樣。

+0

是的,ember模板對象是空的。我試圖使用handlebars_assets寶石。 – JBK

+0

結束了做rake資產:預編譯。不知道爲什麼在開發過程中,鏈輪不會編譯它們。 – JBK