如何在AngularFire 0.5.0中从$ on('loaded')访问加载的数据

【字号: 日期:2024-04-10浏览:40作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决如何在AngularFire 0.5.0中从$ on('loaded')访问加载的数据?

我已经能够解决这个问题。我不知道加载的事件传递了加载资产的原始数据,但在AngularFire文档中未记录。

它没有解释我使用console.log时遇到的奇怪行为,但确实可以解决问题。

.controller(’AssetDetailCtrl’, [’$scope’, ’$firebase’, ’FBURL’, function($scope, $firebase, FBURL) { var refAsset = new Firebase(FBURL + ’/assets/’ + $scope.assetId); $scope.asset = $firebase(refAsset); // when data is loaded check validity of the route $scope.asset.$on(’loaded’, function(value) { console.log(value); // data loaded from Firebase console.log(value.name); // subset of the returned value });}])解决方法

我在使用AngularFire 0.5.0中的。$ on方法访问从Firebase加载的数据时遇到问题

在回调中,当我注销范围的内容时,数据在那里,但是当我尝试使用更深的数据时,我得到了undefined。也许我误会了您如何使用这种方法访问数据?

这是我的控制器:

.controller(’AssetDetailCtrl’,[’$scope’,’$firebase’,’FBURL’,function($scope,$firebase,FBURL) { var refAsset = new Firebase(FBURL + ’/assets/’ + $scope.assetId); $scope.asset = $firebase(refAsset); // when data is loaded check validity of the route $scope.asset.$on(’loaded’,function() { console.log($scope.asset); // complete with the asset data console.log($scope.asset.name); // undefined even though it appears in the above console log });}])

因此,也许有更好的方法可以做到这一点。为什么即使将日志记录到控制台也无法从示波器访问数据?

这是第一个console.log的结果

Object { $bind: function,$add: function,$save: function,$set: function,$remove: function…} $add: function (b,c){var d;return d='object'==typeof b?a._fRef.ref().push(a._parseObject(b),c):a._fRef.ref().push(b,c)} $bind: function (b,c){return a._bind(b,c)} $child: function (b){var c=new AngularFire(a._q,a._parse,a._timeout,a._fRef.ref().child(b));return c.construct()} $getIndex: function (){return angular.copy(a._index)} $on: function (b,c){switch(b){case'change':a._onChange.push(c);break;case'loaded':a._onLoaded.push(c);break;default:throw new Error('Invalid event type '+b+' specified')}} $remove: function (b){b?a._fRef.ref().child(b).remove():a._fRef.ref().remove()} $save: function (b){b?a._fRef.ref().child(b).set(a._parseObject(a._object[b])):a._fRef.ref().set(a._parseObject(a._object))} $set: function (b){a._fRef.ref().set(b)} asset_author: Object collections: Array[2] creator: 'John Doe' desc: 'a description of the asset' file: 'http://lorempixel.com/400/200/sports/3/' filesize: '28kb' filetype: 'jpg' name: 'Cycling' release: '12/12/2013' tags: 'tag1,tag3' type: 'Photography' __proto__: Object

第二个console.log返回 undefined

相关文章: