¿Cómo ejecuto una función después de que se inserta una Vista ámbar en el DOM?Usando Ember.js, ¿cómo ejecuto algunos JS después de que se muestra una vista?
Aquí está mi caso de uso: me gustaría usar jQuery UI para poder ordenar.
¿Cómo ejecuto una función después de que se inserta una Vista ámbar en el DOM?Usando Ember.js, ¿cómo ejecuto algunos JS después de que se muestra una vista?
Aquí está mi caso de uso: me gustaría usar jQuery UI para poder ordenar.
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
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();
}
});
Si lo llamas así, necesitas agregar this._super() en la parte superior. – SwarmIntelligence
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
});
}
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,
$()
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
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. –
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 /) –
¡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. –