收到Restangular
对象myObject
后,看起来像:
要获取$object: array[2]
字段,我会myObject[0]
,结果为undefined
。
这是我的代码:
r = Restangular.service("patient_messages")
myObject = r.getList() # This returns the object on picture above
console.log("$object", myObject[0]) # result: $object undefined
任何人都可以帮助我进入那个领域吗?
答案 0 :(得分:2)
如果您尝试这样做:
console.log("myObject", angular.toJson(myObject));
您将获得此输出:
# myObject {"restangularCollection":true,"$object":[]}
myObject
的真正价值,一个几乎空的对象,将来会在某个时刻填入数据:调用完成时确切地说。这解释了不同的结果。
您在控制器中创建的 Restangular 实例将返回$q.defer().promise对象,其目的是允许感兴趣的各方访问该结果延迟任务完成时。
所以myObject.$object[0]
尚未存在,您的控制器在您调用promise.then()
方法之前不会接受它,该方法将返回新的派生承诺,这看起来就像你在控制台中看到的那个:
通过此代码替换您的代码console.log("$object", myObject[0])
,它将起作用:
myObject.then(function(){
console.log("$object", myObject.$object[0]);
});