Ember Aufruf-Aktion auf Vorlage laden
Habe ich ein ember-app mit der Kontakte-Seite. Ich habe eine Liste von Benutzern, die gefiltert werden soll, nach a) einer Suchanfrage und b) Filter gespeichert auf der Sitzung.currentUser-Modell (mit ember-simple-auth-entwickeln).
Meine route:
import Ember from 'ember';
import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin).extend({
model: function() {
return this.store.find('user');
},
setupController: function(controller, model){
this._super(controller, model);
var currentUser = this.store.fetch('user', this.get('session').get('user_id'));
//console.log(currentUser);
controller.set('currentUser', currentUser);
}
});
Mein controller:
import Ember from 'ember';
export default Ember.ArrayController.extend({
searchText: '',
filterUsers : function() {
//Function to set the filteredUsers property, set in the route, based on the searchText
var searchText = this.get('searchText'), regex = new RegExp(searchText, 'i');
var us = this.get('model').filter(function(item) {
//Run some filters here...
});
this.set('filteredUsers', us);
return false;
}.observes('searchText', 'model'),
actions: {
//Click the "Filter" button and update the server
setFilters: function(){
this.get('session').get('currentUser').save();
}
}
});
Dies funktioniert bis zu einem Punkt - Eingabe von text in die searchText Feld läuft mein Filter. Jedoch habe ich zwei Probleme, die ich nicht lösen kann:
- Wie ich die filterUsers Funktion ausführen, wenn die Vorlage geladen wird, verwenden Sie Variablen, die auf die currentUser-Modell?
- Wie mache ich filterUsers laufen, wenn ich rufen Sie die setFilters Methode und den aktuellen Benutzer ändern?
Vielen Dank
InformationsquelleAutor AdamP | 2015-03-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ausführen einer Methode auf den controller laden, führen Sie es unter den init-hook.
oder Sie können auch tun:
Aufrufen einer controller-Methode in einer Aktion, nennen Sie es einfach:
InformationsquelleAutor Miguel Mota
Vielleicht sehe ich es zu trivial, aber für mich sieht es aus wie Sie gerade Hinzugefügt haben, um die currentUser, um die 'beobachtet' - Liste. Wenn currentUser geändert wird, wird die filterUser Methode wird automatisch aufgerufen, für Ihre beiden Fragen.
InformationsquelleAutor Hugo Logmans