У мене є функція, яка допомагає фільтрувати дані. Я використовую, v-on:change
коли користувач змінює виділення, але мені також потрібно викликати функцію ще до того, як користувач вибере дані. Я зробив те саме з AngularJS
попереднім використанням, ng-init
але я розумію, що такої директиви вvue.js
Це моя функція:
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)
});
}
У blade
файлі я використовую блейд-форми для виконання фільтрів:
<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>
Це чудово працює, коли я вибираю конкретний елемент. Тоді, якщо я натисну на всі скажімо all floors
, це працює. Мені потрібно, коли сторінка завантажується, вона викликає getUnits
метод, який буде виконувати $http.post
з порожнім введенням. У бекенді я обробляв запит таким чином, що якщо введення порожнє, воно дасть всі дані.
Як я можу це зробити vuejs2
?
Мій код: http://jsfiddle.net/q83bnLrx