2012-03-16 5 views
5

В настоящее время, если мы определяем наш вид как {{#view App.myView}}, ember/handlebars обернут элемент вида внутри <div id="ember-1234" class='ember-view'>.Ember JS/Handlebars view helper

Есть ли способ остановить это?

ответ

11

Вы, вероятно, хотите, чтобы установить тэгу как «».

App.MyView = Em.View.extend({ 
    tagName: '' 
}); 

По крайней мере, он прекращает обертывание внутреннего содержимого.

1

Я предполагаю, что вы говорите о классе «ember-view», который не настраивается (тип элемента настраивается благодаря атрибуту tagName ...).

Фактически, Ember позже использует этот класс для регистрации (один раз!) Прослушивателя событий в документе для отправки событий в представление JS.

Я не против, было бы проще, если бы не использовать этот класс. Нужно было найти другой способ выбрать элемент управления ember, но я понятия не имею, как это сделать.

См source, @ линия 117.

+0

На самом деле, я говорил, что myView будет сгенерирован следующим образом:

. В принципе, я не хочу, чтобы #myView был обернут внутри # ember-1234 –

+0

Добавил еще один ответ ... –

2

Если вы хотите настроить идентификатор Просмотр элемента, вы можете использовать:

{{#view App.myView id="my-id"}} 
+0

Но он все еще обернут внутри div, когда он сгенерирован. Я хочу избавиться от оберточного div. –

+0

Так что вы хотите, это не представление ... Не могли бы вы немного рассказать о своем примере кода? Какова ваша цель? Возможно, вы можете просто включить свой контент без просмотра. –

2

я обычно думаю, что мои взгляды, как обертку. Например, если исходный данный HTML-код:

<div class="item"><p>my stuff></p></div> 

Затем я создаю вид со свойством тэгу как «DIV» (который по умолчанию), а также имена классов имущества в качестве «элемента». Это будет оказывать, с шаблоном собственно руля:

{#view App.myView} 
    <p>my stuff></p> 
{/view} 

-> render as 

<div id="ember-1234" class="ember-view item"> 
    <p>my stuff></p> 
</div> 

Тогда, если вам нужно иметь свой надлежащий идентификатор на этой DIV, можно определить свойство «elementId» на классе зрения (до создания()). (@see source code)