Emberjs: какой контекст использует classBinding для помощника {{#view}}?

В примере doc подразумевается, что context – это instance View без controller. Но я не могу попробовать это с последней версией, проверьте эту ссылку jsfiddle.


person LiZn    schedule 25.12.2012    source источник


Ответы (1)


Вот как я бы это сделал: http://jsfiddle.net/arasbm/ACqjt/1/< /а>

Просто чтобы уточнить контекст представления, по умолчанию установлен его контроллер. Если вы хотите получить доступ к свойству представления, такому как flag, внутри шаблона представления, вы должны использовать view.flag для ссылки на него.

Я предпочитаю настраивать привязки имени класса представления внутри самого представления:

classNameBindings: ['flag:A:B']

Вы также должны иметь возможность выполнять привязку в шаблоне, но я не уверен, почему это не работает в вашей скрипке. Не используйте кавычки, когда вы определяете свое представление, вместо этого используйте:

{{view App.CustomDiv}}

or

{{#view App.CustomDiv}}{{/view}}

если вы не хотите использовать отдельный шаблон для вашего представления. Мне нравится настраивать шаблон для каждого представления, которое у меня есть. Я помещаю их в отдельные файлы, например custom.handlebars, но для демонстрации в jsFiddle вы можете использовать свойство data-template-name, чтобы назвать шаблон, который вы хотите использовать, а затем ссылаться на него внутри определения представления, используя templateName. Надеюсь, это поможет вам двигаться вперед.

person Aras    schedule 25.12.2012
comment
Спасибо за ваш ответ. Это работает, если настроить classNameBindings внутри View, но я думаю, что это может быть более гибким, чем определение привязки в шаблонах. - person LiZn; 26.12.2012