2012-03-16 20 views
5

Actualmente, si definimos nuestra vista como {{#view App.myView}}, el aserradero/manillar envolverá el elemento de vista dentro de un <div id="ember-1234" class='ember-view'>.Ember JS/manubrios ver ayudante

¿Hay alguna manera de detener esto?

Respuesta

11

Es posible que desee establecer como tagName ''.

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

Al menos deja de envolver los contenidos internos.

1

Supongo que está hablando de la clase 'ember-view' que no es personalizable (tipo de elemento que se puede personalizar gracias al atributo tagName ...).

Actualmente, Ember utiliza esta clase para registrar (una vez) un detector de eventos en el documento para enviar eventos a la vista JS.

No me importa que sea tan simple evitar el uso de esta clase. Tendría que encontrar otra forma de seleccionar el elemento controlado de todas las brasas, pero no tengo idea de cómo.

Ver source, @ línea 117.

+0

En realidad, estaba diciendo que myView se generará así

. Básicamente, no quiero #myView para ser envuelto dentro de # ember-1234 –

+0

Agregué otra respuesta ... –

2

Si desea personalizar Identificación del punto de vista de elemento, que puede utilizar:

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

Pero todavía está envuelto dentro de un div cuando se genera. Quiero deshacerme de la envoltura div. –

+0

Así que lo que quieres no es una vista ... ¿Podrías por favor elaborar un poco tu código de muestra? ¿Cuál es tu meta? Tal vez podrías simplemente incluir tu contenido sin una vista. –

2

por lo general creo que mis puntos de vista como envoltorio. Por ejemplo, si el código html inicial dada es:

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

Luego de crear una vista con una propiedad tagName como "div" (que es por defecto), y la propiedad classnames como "elemento". Esto hará que, con la plantilla manillar adecuados:

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

-> render as 

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

Entonces, si usted necesita tener su identificación apropiada en este div, se podría definir la propiedad "elementId" en la clase de vista (antes de crear()). (@see source code)

Cuestiones relacionadas