Я не могу получить доступ к массиву в контроллере AngularJS, но он работает в представлении.
В контроллере: .results
возвращает неопределенное
function TwitterCtrl($scope, $resource){
$scope.twitter = $resource('http://search.twitter.com/:action',
{action:'search.json', q:'angularjs', callback:'JSON_CALLBACK'},
{get:{method:'JSONP', params: {rpp: 4}}});
$scope.twitterResult = $scope.twitter.get({q:"example"});
//returns the resource object
console.log($scope.twitterResult)
//returns undefined
console.log($scope.twitterResult.results);
}
В представлении: .results
возвращает массив твитов
//This returns an array of tweets
{{$scope.twitterResult.results}}
См. Также http://stackoverflow.com/questions/14373661/angularjs-data-assignment –
Спасибо. Этот пост описывает то, что я пытался достичь. Я поместил весь свой код в обратный вызов 'success', чтобы использовать массив' results'. Мне хотелось бы назначить массив переменной и получить доступ к ней за пределами этой функции. – Dru
Вы можете сделать это - например, $ scope.twitterResult = $ scope.twitter.get (...) '- если вы также добавляете' $ watch ('twitterResult', function (newValue) {.. .}) ', чтобы обнаружить, когда он получает асинхронное обновление. –