2012-03-16 15 views
5

Obecnie, jeśli zdefiniujemy nasz widok jako {{#view App.myView}}, ember/kierownica zawinie element widoku wewnątrz <div id="ember-1234" class='ember-view'>.Ember JS/Handlebars view helper

Czy istnieje sposób, aby to zatrzymać?

Odpowiedz

11

Prawdopodobnie chcesz ustawić jako zmienna typu „”.

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

Przynajmniej przestaje zawijać zawartość wewnętrzną.

1

Zakładam, że mówisz o klasie 'ember-view', której nie można zmienić. (Typ elementu można dostosować za pomocą atrybutu tagName ...).

W rzeczywistości Ember używa tej klasy do zarejestrowania (raz!) Detektora zdarzeń w dokumencie, aby wysyłać zdarzenia do widoku JS.

Nie przeszkadza mi, że łatwiej byłoby uniknąć używania tej klasy. Musiałby znaleźć inny sposób na wybranie kontrolowanego elementu Ember, ale nie mam pojęcia, jak to zrobić.

Zobacz source @ linia 117.

+0

Właściwie mówiłem, że myView będzie generowany w ten sposób:

. Zasadniczo nie chcę, aby #myView było zapakowane wewnątrz # ember-1234 –

+0

Dodano kolejną odpowiedź ... –

2

Jeśli chcesz dostosować widok id elementu, można użyć:

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

Ale nadal jest opakowana wewnątrz elementu div, gdy jest generowana. Chcę się pozbyć pakującego diva. –

+0

Więc to, czego chcesz, to nie jest widok ... Czy mógłbyś podać trochę swojej próbki kodu? Co jest twoim celem? Może mógłbyś po prostu zamieścić swoje treści bez widoku. –

2

zwykle myśleć moje poglądy jako owijki. Na przykład, jeśli początkowy kod HTML jest podane:

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

Potem utworzyć widok z właściwością TagName jako „div” (który jest domyślny), a własności classnames jako „elementu”. Spowoduje to, ze odpowiednie Kierownice szablonu:

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

-> render as 

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

Następnie, jeśli chcesz mieć swój prawidłowy identyfikator na tym div, można zdefiniować „elementId” własność na swojej klasie widzenia (przed utworzeniem()). (@see source code)