2012-01-16 6 views

Respuesta

64

Debe sobrescribir didInsertElement como "Invocado cuando el elemento de la vista se ha insertado en el DOM. Anule esta función para realizar cualquier configuración que requiera un elemento en el cuerpo del documento".

Dentro de la devolución de llamada didInsertElement, puede usar this.$() para obtener un objeto jQuery para el elemento de la vista.

Referencia: https://github.com/emberjs/ember.js/blob/master/packages/ember-views/lib/views/view.js

+10

Dentro de su anulación de didInsertElement, puede hacer referencia a 'esto. $()' Para obtener un identificador para la envoltura de jQuery para el elemento DOM. –

+3

Marc: Este artículo también te puede resultar útil. Me ayudó cuando volví a tener que hacer funcionar JUI y SC2. NOTA: Algunas de las API podrían haber cambiado desde que se escribió este artículo, por lo que es posible que no se haya cortado y pegado el código. [http://yehudakatz.com/2011/06/11/using-sproutcore-2-0-with-jquery-ui/](http://yehudakatz.com/2011/06/11/using-sproutcore-2 -0-with-jquery-ui /) –

+0

¡Muchas gracias!Que esta respuesta más esos dos comentarios realmente me ayudó a resolver esto. Estoy impresionado con el apoyo de la comunidad EmberJS hasta el momento. –

0

Es necesario para disparar lo que quiera en el didInsertElement de devolución de llamada en tu Vista:

MyEmberApp.PostsIndexView = Ember.View.extend({ 

    didInsertElement: function(){ 
    // 'this' refers to the view's template element. 
    this.$('table.has-datatable').DataTable(); 
    } 

}); 
+1

Si lo llamas así, necesitas agregar this._super() en la parte superior. – SwarmIntelligence

1

También puede utilizar afterRender método

didInsertElement: function() { 
Ember.run.scheduleOnce('afterRender', this, function() { 
    //Put your code here what you want to do after render of a view 
    }); 
} 
0

Ember 2. x: La vista está en desuso, use el componente en su lugar

Debe comprender el ciclo de vida del componente para saber cuándo ocurren ciertas cosas.

A medida que los componentes se procesan, se vuelven a renderizar y finalmente se eliminan, Ember proporciona ganchos de ciclo de vida que le permiten ejecutar código en momentos específicos de la vida de un componente.

https://guides.emberjs.com/v2.6.0/components/the-component-lifecycle/

En general, didInsertElement es un gran lugar para integrarse con las bibliotecas 3 ª parte.

Este gancho garantiza dos (2) cosas,

  1. elemento del componente ha sido creado y se inserta en el DOM.
  2. El elemento del componente es accesible a través del método $() del componente.

En lo que necesita JavaScript para funcionar cada vez que cambian los atributos

Ejecutar el código dentro de didRender gancho.

Una vez más, por favor lea la documentación del ciclo de vida de arriba para obtener más información

Cuestiones relacionadas