所以当我使用
时,我有这个ember对象"阵容"function ContentController($scope, $ionicSideMenuDelegate) {
$scope.toggleLeft = function() {
$ionicSideMenuDelegate.toggleLeft();
};
}
但如果我检查那个对象并使用_data
,那就错了lineup.get('stations').length = 396
这是正确的,
阵容电台是从像这样的
的余烬数据请求有效载荷操作中获得的lineup._data.stations.length = 429
任何想法?
答案 0 :(得分:1)
Ember.get
有时会返回ObjectProxy
或ArrayProxy
。有时在余烬数据中,您还可以获得PromiseObject
或PromiseArray
。
如果您在计算属性中,则可以直接访问数据,但在.get之后永远不要使用普通的JS-dotnotation!始终obj.get('full.path.to.prop')
而不是obj.get('full').get('path').get('to').get('prop')
或obj.get('full').path.to.prop
。
如果您不在计算属性中(例如,您处于某个操作中),请在.then
或PromiseObject
上使用PromiseArray
。
因此对于计算属性:
len: Ember.computed('lineup', {
get() {
return this.get('lineup.stations.length');
}
})
并采取行动:
alertLen() {
this.get('lineup.stations').then(stations => alert(stations.get('length'));
}