获取Restangular对象属性

时间:2015-08-05 22:59:39

标签: javascript coffeescript restangular

收到Restangular对象myObject后,看起来像:

enter image description here

要获取$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 

任何人都可以帮助我进入那个领域吗?

1 个答案:

答案 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]);
});