Cómo llamar a un SDV.función js en carga de página
Tengo una función que ayuda a filtrar datos. Estoy usando v-on:change
cuando un usuario cambia la selección, pero también necesito que se llame a la función incluso antes de que el usuario seleccione los datos. He hecho lo mismo con AngularJS
anteriormente usando ng-init
pero entiendo que no hay tal directiva en vue.js
Esta es mi función:
getUnits: function () {
var input = {block: this.block, floor: this.floor, unit_type: this.unit_type, status: this.status};
this.$http.post('/admin/units', input).then(function (response) {
console.log(response.data);
this.units = response.data;
}, function (response) {
console.log(response)
});
}
En el archivo blade
uso formularios blade para realizar los filtros:
<div class="large-2 columns">
{!! Form::select('floor', $floors,null, ['class'=>'form-control', 'placeholder'=>'All Floors', 'v-model'=>'floor', 'v-on:change'=>'getUnits()' ]) !!}
</div>
<div class="large-3 columns">
{!! Form::select('unit_type', $unit_types,null, ['class'=>'form-control', 'placeholder'=>'All Unit Types', 'v-model'=>'unit_type', 'v-on:change'=>'getUnits()' ]) !!}
</div>
Esto funciona bien cuando selecciono un elemento específico. Entonces si hago clic en todos digamos all floors
, funciona. Lo que necesito es que cuando la página se cargue, llame al método getUnits
que realizará el $http.post
con entrada vacía. En el backend he manejado la solicitud de una manera que si la entrada está vacía dará todos los datos.
¿Cómo puedo hacer esto en vuejs2
?
Mi Código: http://jsfiddle.net/q83bnLrx
2 answers
Puede llamar a esta función en la sección beforeMount de un componente Vue: como sigue:
....
methods:{
getUnits: function() {...}
},
beforeMount(){
this.getUnits()
},
......
Violín de trabajo: https://jsfiddle.net/q83bnLrx/1 /
Hay diferentes hooks de ciclo de vida que Vue proporciona:
He enumerado algunos son:
- beforeCreate: Se llama sincrónicamente después de que la instancia acaba de inicializarse, antes de la observación de datos y la configuración de event/watcher.
- creado : Llamado sincrónicamente después se crea la instancia. En esta etapa, la instancia ha terminado de procesar las opciones, lo que significa que se han configurado las siguientes opciones: observación de datos, propiedades calculadas, métodos, devoluciones de llamada de observación/evento. Sin embargo, la fase de montaje no se ha iniciado, y la propiedad $el no estará disponible todavía.
- beforeMount: Llamada justo antes de que comience el montaje: la función render está a punto de ser llamada por primera vez.
-
montado : Llamado después de la la instancia acaba de ser montada donde el es reemplazado por el recién creado
vm.$el
. - BeforeUpdate: Se llama cuando los datos cambian, antes de que el DOM virtual sea re-renderizado y parcheado.
- actualizado: Llamado después de un cambio de datos hace que el DOM virtual sea re-renderizado y parcheado.
Puedes echar un vistazo a la lista completa aquí.
Puede elegir qué gancho es el más adecuado para usted y engancharlo para llamar a su función como la muestra código proporcionado anteriormente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-21 16:54:23
Necesitas hacer algo como esto (Si quieres llamar al método al cargar la página):
new Vue({
// ...
methods:{
getUnits: function() {...}
},
created: function(){
this.getUnits()
}
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-21 07:02:42