我正在使用工厂从数据库中获取电视节目。我想将此对象中的剧集字段发送到角度服务,但我一直使用点表示法和括号表示法来定义。有人可以解释如何获得这个领域。
控制器
angular.module('showApp.controllers', []).controller('ShowViewController', function($scope, $stateParams, Show, $http) {
$scope.show = Show.get({ id: $stateParams.id }); //Get a single show.Issues a GET to /api/shows/:id
console.log($scope.show)
console.log($scope.show.episodes)
})
控制台输出
m
$promise:d
$resolved:true
__v:0
_id:"581a5b82ff9e9f10f22afff7"
airs_on:Array[1]
episodes:Array[11]
genre:Array[3]
network:"Netflix"
poster:"https://images-na.ssl-images-amazon.com/images/M/MV5BMTk5NTk1Mzg3Ml5BMl5BanBnXkFtZTcwNDAyNzY3OA@@._V1._CR25,3,1010,1343_SY1000_CR0,0,752,1000_AL_.jpg"
program_time:60
rated:"TV-MA"
streams_on:Array[3]
title:"Black Mirror"
yearBegin:2011
__proto__:Object
undefined
答案 0 :(得分:1)
您可以通过以下方式等待结果:
$scope.show.$promise.then(function(show) {
console.log(show.episodes);
})
您应该在then
函数中调用该服务。
答案 1 :(得分:0)
我认为这是一个时间问题。应该有来自http get请求的回调,此时$ scope.show是有效的 - 你应该在回调中记录你的控制台