Я пытаюсь сохранить 1 или более значений, находящихся внутри массива, в область. Это результат моей службы JSONP,Как выбрать значение внутри объекта
angular.callbacks._7({
"id":157336,"results":[
{"id":"53db3c790e0a26189a000d09","iso_639_1":"en","key":"ePbKGoIGAXY","name":"Trailer 3","site":"YouTube","size":1080,"type":"Trailer"},
{"id":"550df44b9251413554004d43","iso_639_1":"en","key":"KlyknsTJk0w","name":"Own it today","site":"YouTube","size":720,"type":"Trailer"},
{"id":"533ec6fcc3a3685448009ccc","iso_639_1":"en","key":"nyc6RJEEe0U","name":"Teaser","site":"YouTube","size":720,"type":"Trailer"},
{"id":"5376ab510e0a26141c0005a8","iso_639_1":"en","key":"zSWdZVtXT7E","name":"Trailer","site":"YouTube","size":720,"type":"Trailer"},
{"id":"545da247c3a3685362005187","iso_639_1":"en","key":"Lm8p5rlrSkY","name":"Trailer 2","site":"YouTube","size":1080,"type":"Trailer"}
]
})
И я пытаюсь сохранить все key
значения внутри рамки под названием $scope.youtubeTrailer
Но если я делаю это так,
$scope.youtubeTrailer = response;
console.log ($scope.youtubeTrailer)
Область состоит из объекта (фильма) и внутри этого объекта представляет собой массив с 5 идентификаторами. Итак, каков был бы правильный селектор для чего-то подобного?
Если я ищу, как это,
console.log ($scope.youtubeTrailer.key)
я получаю «undefined'
* EDIT *
Я попытался решения ниже,
movieAdd.trailer(movie.id)
.then(function(response){
$scope.youtubeTrailer =[];
console.log ($scope.youtubeTrailer)
angular.forEach(response.results, function(item){
console.log ('Hello world')
if (item.hasOwnProperty('key')) {
$scope.youtubeTrailer.push(item.key);
}
});
console.log ($scope.youtubeTrailer)
показывает, что scop e пусто. И функция forEach
не запускается, потому что Hello log
не отображается в консоли. Если я изменю $scope.youtubeTrailer =[];
на $scope.youtubeTrailer = response;
У меня есть объект в области, но все равно forEach
не срабатывает.
* EDIT 2 *
response.results
По changinge в response
forEach
делает огонь.
* EDIT 3 *
У меня это несколько работает. Я получал массив в области видимости, но когда я сохранил значение области в функции create, он показал как null в базе данных. Это потому, что я пытался сохранить массив. Использование javascripts join
Я преобразовал массив в строку, которую можно сохранить.
movieAdd.trailer(movie.id)
.then(function(response){
$scope.youtubeTrailer = [];
angular.forEach(response, function(item){
if (item.hasOwnProperty('key')) {
$scope.youtubeTrailer.push(item.key);
var youtubeArray = $scope.youtubeTrailer
var youtubeString = youtubeArray.join();
Благодарим вас за ввод. Я пытался работать с кодом в контроллере, но похоже, что функция 'forEach' не срабатывает. Я обновил свой вопрос, чтобы показать проблему. –
Можете ли вы показать реализацию 'moiveAdd.trailer'? Мне интересно, что, возможно, «сервис» вызывает проблему. Можете ли вы 'console.log (response)' перед функцией 'forEach' и опубликовать журнал? –
Не знаю, в чем была проблема. Но я все это исправил, как вы можете видеть в редактировании, сделанном в вопросе. –