2013-05-07 62 views
0

在我的模板中,我必須將this.name和this.gravatar訪問我的用戶模型數據屬性。 如果我沒有,模板嘗試呈現時我會收到錯誤消息。一切正常,但我沒有看到他們提出這個問題的任何例子。在模板中。骨幹模板變量只能用於如果我在模板中使用它

我的骨幹網查看:

Class MyApp.Views.Header extends Backbone.View 
    template: JST['header'] 

    initialize: => 
    @model.on("change reset add", @render) 

    render: => 
    @$el.html(@template (@model.attributes)) 
    this 

我的頭模板:

<span id= "headerRight"> 
    <span> 
    <a href="/classroom/help">Help</a> 
    </span> 
    <span> <img id="headerGravatar" src="<%= this.gravatar %>"></span> 
    <span> <%= this.name %> </span> 
    <span> 
    <a class="logout" href='/signout'>Sign Out</a> 
    </span> 
</span> 

我如何生成我的觀點:

headerView = new UCBCloudClassroom.Views.Header(model: @user) 
    $('#header').html(headerView.render().el) 
+0

正確我在說<%= this.name%>有效,但<%= name %>沒有。我拿出了渲染方法中的空間。仍然沒有區別。當模板嘗試渲染時,我得到的錯誤消息名稱未定義。如果我只是將模板代碼更改爲this.name,它可以正常工作。 – ChickenFur 2013-05-07 18:46:10

+0

也許它與使用rails資產管道有關,模板位於jst.eco文件中。我在javascript控制檯中發現錯誤,說沒有定義名稱 – ChickenFur 2013-05-07 20:06:39

回答

1

骨幹需要強調所以大多數的例子,你看到的將使用具有<%= property%>語法的下劃線模板。

生態模板使用<%= @property%>語法用於顯示模型屬性link

由於<%= @property%>相當於<%= this.property%>一切工作如預期。