J'ai une fonction route ui qui ressemble à ce qui suitangulaire routeur ui fonction non définie dans le contrôleur
.state('question', {
url: '/question',
templateUrl: 'views/templates/question.view.htm',
controller: 'QuestionController',
resolve: {
questions_preload: function(Question) {
return Question.query();
}
}
});
Le Question.query() ressemble à
Question.query = function() {
var deferred = $http.get(HATEOAS_URL);
return SpringDataRestAdapter.processWithPromise(deferred).then(function (data) {
Question.resources = data._resources("self");
return _.map(data._embeddedItems, function (question) {
return new Question(question);
});
});
};
et le contrôleur qui doit avoir la questions préchargées au début des êtres comme celui-ci
angular.module('myapp').controller('QuestionController', function ($scope, Question) {
$scope.questions = questions_preload;
Malheureusement, la question.query La méthode() exécute correctement le questions_preload qui, selon moi, hébergerait le tableau non défini lors de l'exécution du contrôleur.
Je crois que c'est quelque chose à voir avec le différé dans la fonction de requête? Quelqu'un aurait-il une idée?
Merci, Marque.
Désolé, je ne voyais que je ne l'avais pas injecté plus tôt et modifié mais je viens de faire Erreur: [injecteur $: UNPR] fournisseur inconnu: questions_preloadProvider <- questions_preload <- QuestionController Merci pour la réponse que Duncan –
Etes-vous sûr de ne pas essayer d'instancier le contrôleur ailleurs? par exemple. directement à partir de votre code HTML. Vous devriez être capable d'injecter cette valeur quand instancié par ui-routeur mais il ne serait pas disponible à d'autres moments. (Juste deviner ici, sinon je ne peux pas voir pourquoi vous auriez cette erreur) – Duncan
Awesome Duncan !! Je n'avais aucune idée que le ui.router instanciait le contrôleur et que le ng-controller que j'avais avait aussi instancié un autre contrôleur. Comment puis-je marquer cela comme la réponse ?? –