骨干模板变量只有在我在模板中使用它时才能使用

时间:2013-05-07 18:02:48

标签: ruby-on-rails backbone.js asset-pipeline eco jst

在我的模板中,我必须使用this.name和this.gravatar来访问我的用户模型数据属性。 如果我不这样做,我会在模板尝试渲染时收到错误消息。一切正常,但我没有看到他们提出这个问题的任何例子。在模板中。

My Backbone View:

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)

1 个答案:

答案 0 :(得分:1)

Backbone需要下划线,因此您看到的大部分示例都将使用具有&lt;%= property%&gt;的下划线模板。语法。

Eco模板使用&lt;%= @property%&gt;显示模型属性的语法link

由于&lt;%= @property%&gt;相当于&lt;%= this.property%&gt;一切都按预期工作。