Ich möchte auf den Controller meiner Route innerhalb des preedSend-Hooks auf einer Route zugreifen, um die Pause bei der Versprechungslogik zu nutzen.Zugriff auf den Controller über das beforeModel einer Route
Dies ist meine aktuelle Problemumgehung, um "category_config" auf meinem Controller setzen zu können, der aus einem Versprechen in beforeModel stammt.
Imaging.ReferenceRoute = Ember.Route.extend(Imaging.Ajax, {
setupController: function(controller, model) {
controller.set('error_messages', []);
controller.set('category_config', this.get('category_config'));
return this._super(controller, model);
},
beforeModel: function(transition) {
var categories;
categories = this._promise("/url/foo/", "GET");
return Ember.RSVP.all([categories]).then(((function(_this) {
return function(response) {
return _this.set('category_config', response[0]);
};
})(this)));
},
model: function() {
return Imaging.Document.find();
}
});
Falls Sie neugierig sind meine _promise Helfer unter:
_promise: function(url, type, hash) {
return new Ember.RSVP.Promise(function(resolve, reject) {
hash = hash || {};
hash.url = url;
hash.type = type;
hash.dataType = "json";
hash.success = function(json) {
return Ember.run(null, resolve, json);
};
hash.error = function(json) {
if (json && json.then) {
json.then = null;
}
return Ember.run(null, reject, json);
};
return $.ajax(hash);
});
}
Wie kann ich dies tun, ohne die beforeModel die ‚category_config‘ gesetzt, die auf der Strecke, und es dann am Regler in setupController?
funktioniert perfekt! (getestet) –
das war ein viel sauberer Ansatz. Vielen Dank! –
Gern geschehen! Wenn das Ihr Problem gelöst hat, können Sie es bitte akzeptieren? –