Базовые переменные шаблона работают, только если я использую это в шаблоне
В моем шаблоне я должен поместить 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)
1 ответ
Решение
Backbone требует подчеркивания, поэтому большинство примеров, которые вы видите, будут использовать шаблоны подчеркивания, которые имеют синтаксис <% = property%>.
Эко-шаблоны используют синтаксис <% = @property%> для отображения ссылки на атрибуты модели:
Поскольку <% = @property%> эквивалентно <% = this.property%>, все работает так, как задумано.