У меня такой контроллер:

App.ShowController = Ember.Controller.expend({
   buttonTitle: 'Create'
});

И следующий шаблон show.handlebars

<a href='#'>{{buttonTitle}}</a>

Но текст не отображается. Есть ли специальный вызов для доступа к атрибуту?

0
bcardarella 10 Янв 2013 в 22:45

1 ответ

Лучший ответ

Обычно, когда представление отображается (через маршрутизатор), контекст представления автоматически устанавливается на контроллер, поэтому не должно быть ничего особенного.

Вот пример, где MyApp.IndexController автоматически устанавливается в качестве контекста IndexView (а его шаблоном является шаблон index):

MyApp = Ember.Application.create({});

MyApp.Router = Ember.Router.extend();

MyApp.Router.map(function(match) {
  match('/').to('index');
});

MyApp.IndexController = Ember.Controller.extend({
  buttonTitle: "create"
});

Шаблон:

<script type="text/x-handlebars" data-template-name="index">
  {{buttonTitle}}
</script>

И вы можете попробовать это на этом JSFiddle.

Примечание: здесь я использую Ember v1.0.0-pre.2-239. Чтобы обновить этот пример до уровня master, необходимо внести некоторые изменения.

2
louiscoquio 10 Янв 2013 в 22:53
Я забыл, что на самом деле я визуализировал шаблон с помощью помощника render из шаблона show. Так что контекст действительно менялся.
 – 
bcardarella
10 Янв 2013 в 23:02