以下脚本是使用angularfire,firebase和angular从firebase中读取的简单脚本。问题是,当我将AngularFire从0.7.1升级到.0.8.0时,脚本完全停止工作,我不确定我做错了什么?
<body>
<section ng-app="myapp" ng-controller="MyController">
<div ng-repeat="item in data">
<h3 ng-cloak>{{item.title}}</h3>
</div>
</section>
<script>
angular.module("myapp", ["firebase"])
.factory("FirebaseService", ["$firebase", function ($firebase) {
var furl = "https://helloworldtest.firebaseio.com/";
var ref = new Firebase(furl);
return $firebase(ref);
}])
.controller('MyController', ["$scope", "FirebaseService", function ($scope, firebaseservice) {
$scope.data = firebaseservice
}]);
知道这个配置它运作正常:
<script src='https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.6/angular.min.js'></script>
<script src='https://cdn.firebase.com/js/client/1.0.17/firebase.js'></script>
<script src='https://cdn.firebase.com/libs/angularfire/0.7.1/angularfire.min.js'></script>
但是有了它,它不起作用:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.17/angular.min.js"></script>
<script src="https://cdn.firebase.com/js/client/1.0.18/firebase.js"></script>
<script src="https://cdn.firebase.com/libs/angularfire/0.8.0/angularfire.min.js"></script>
也许最好不升级。
答案 0 :(得分:4)
在您的控制器中执行: -
$scope.data = firebaseservice.$asArray(); //or .$asObject
或者在您的服务中这样做: -
return $firebase(ref).$asObject(); //or .$asObject
<强> Demo 强>
我从未使用过Firebase,但似乎这是为改进功能而引入的重大变化,Found it here
在以前的版本中,在AngularFire绑定初始化时加载了Firebase数据。改进的API提供了两种以不同格式加载数据的方法。那些方法是$ asObject()和$ asArray()。
根据Kato
的评论进行更新以下是change log说明新版本中的更改。它说明了许多重大变化的引入,所以我猜你可以期待相同的直到1.0稳定版本完成。这是official api documentation。