проблема заключается в том, что данные не могут использоваться в контроллере, потому что они всегда неопределены, я думаю, это связано с тем, что возврат является обещанием, которое не было разрешено раньше запустите контроллер, пожалуйста, помогите .. вот мой код.Вложенный объект не определен в контроллере, в то время как весь объект может быть прочитан
.factory('channelsFactory', ['$resource', 'baseURL', function($resource, baseURL) {
return $resource(baseURL+"channels/:id",null,{'update':{method:'PUT' }});
}])
это контроллер в моем controllers.js
.controller('videoController',[ '$scope','$http', 'baseURL','channelsFactory','channel',function($scope, $http, baseURL,channelsFactory, channel){
$scope.baseURL= baseURL;
$scope.channel= channel;
console.log(channel)// I can see the promised data just fine
$scope.videos = [];
$scope.youtubeParams = {
key: 'AIzaSyAc6Su5lq1-OIXHu3VMfssPM5RzY8F2tPk',
type: 'video',
maxResults: '20',
part: 'id,snippet',
q:'',
order: 'date',
channelId:channel.channelid,//undfined
$http.get('https://www.googleapis.com/youtube/v3/search', {params:$scope.youtubeParams}).success(function(response){
angular.forEach(response.items, function(child){
$scope.videos.push(child);
console.log(child);
});
});
и здесь есть вид в app.js
.state('app.channelvideos', {
url: '/channelsList/:id',
views: {
'mainContent': {
templateUrl: 'templates/channelvideos.html',
controller: 'videoController',
resolve: {
channel: ['channelsFactory','$stateParams', function(channelsFactory,$stateParams){
return channelsFactory.get({id:parseInt($stateParams.id,10)})
}]
}
}
}
})
Вы исследовали сетевой запрос и ответ? Решение ожидающих обещаний должно быть прекрасным. –
yes Я могу прочитать ответ в консоли, но при попытке прочитать вложенный объект, такой как console.log (channel.id), он возвращает undefined также –