获取 Restangular 对象属性

Get Restangular object attribute

收到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 

谁能帮我弄到那个字段?

如果你试试这个:

console.log("myObject", angular.toJson(myObject));

你会得到这个输出:

# myObject {"restangularCollection":true,"$object":[]}

这是myObject的真正价值,一个几乎空的对象,将在未来某个时刻填充数据:当调用完成 准确地说。这解释了不同的结果。

您在 控制器 中创建的 Restangular 实例将 return 一个 $q.defer().promise 对象,目的是允许相关方在 延迟任务 完成时访问其结果。

所以 myObject.$object[0] 还不存在,你的 控制器 不会得到它,直到你调用 promise.then() 方法,这将 return 新派生的 promise,看起来就像您在控制台中看到的那个 :


用这个替换你的代码console.log("$object", myObject[0]),它将起作用:

myObject.then(function(){
  console.log("$object", myObject.$object[0]);
});