Я маршрутизатор, который ждет эти свойства должны быть решеныAngularJS Promise решен неправильно
$stateProvider.state('friends', {
url: '/friends/{id}',
templateUrl: '/friends.html',
controller: 'friendsCtrl',
resolve: {
friend: ['$stateParams', 'friends', function($stateParams, friends){
return friends.get($stateParams.id);
}],
notes: ['$stateParams', 'friends', function($stateParams, friends){
return friends.getNotes($stateParams.id);
}]
}
});
Это friends.get и friends.getNotes.
friends.get = function(id){
return $http.get('/friends/' + id).then(function(res){
return res.data;
});
};
friends.getNotes = function(id){
return $http.get('/friends/' + id + '/notes').then(function(res){
console.log(res.data);
return res.data;
});
}; etc... (10 more methods)
Друзья - это объект с приблизительно 12 различными методами, getNotes и просто быть двумя из них. Я проверил консольный журнал для getNotes и получил. get возвращает объект-друга (как я хочу), и getNotes возвращает массив заметок (также, как я и хотел).
Эта проблема входит в контроллер. Друг получает разрешение на объект друга, как я хочу. ОДНАКО, заметки решают, как весь объект друзей (это не массив, он буквально является объектом друзей с такими методами, как get и getNotes).
Это, как я впрыснуть друга и заметки в контроллер
app.controller('friendsCtrl', ['$scope', 'friend', 'notes', 'friends',
function($scope, friend, friends, notes){
$scope.doComment = false;
$scope.friend = friend;
console.log(friend);
$scope.notes = notes;
console.log(notes);
друг Logging дает мне объект другу. Запись записей не дает мне массив заметок, как ожидалось, скорее я получаю объект ENTIRE friends. Поэтому вместо [note1, note2, note3] я получаю Object с методами getNotes, get и т. Д. Любые идеи, почему я получаю объект друзей, а не массив примечаний в заметках?
Wow lifesaver .. Не понял, что требовалось заказать. Я приму ответ после истечения срока. Благодаря!! – user3340037
Да, весь смысл этой записи массива - указать порядок обслуживания. Службы будут впрыскиваться в соответствии с порядком строк, поэтому после минимизации, когда аргументы функции становятся 'function (a, b, c, d) {}' Angular все еще может понять, что 'a' является' $ scope', 'b' это 'firend' и т. д. – dfsq