我目前正在尝试在Firebase的页面上打印数据。我使用$routeProvider
,因此会显示相关网页的相关数据。
我的Firebase数据如下所示:
{
"providers" : {
"0" : {
"title" : "The Whittington Hospital",
"address" : {
"street" : "Magdala Ave"
},
"links" : {
"web" : "http://whittington.nhs.uk"
}
}
}
}
我的 HTML 是这样的:
<div ng-controller='ProviderCtrl'>
<h4>at {{ title }}</h4>
<address>
{{ address.street }}<br>
</address>
<p><a target="blank" ng-href="{{ links.web }}">{{ links.web }}</a></p>
</div>
我的 JS 就像这样:
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/providers/:providerId', {
templateUrl: 'views/provider.html',
controller: 'ProviderCtrl'
})
}]);
app.factory('provider', function($firebase, FBURL, $routeParams) {
var ref = new Firebase(FBURL + "providers/" + $routeParams.providerId);
var links = $firebase(ref.child('links')).$asObject();
var address = $firebase(ref.child('address')).$asObject();
var title = $firebase(ref.child('title'));
return {
ref: ref,
id: $routeParams.providerId,
links: links,
address: address,
title: title
}
});
app.controller('ProviderCtrl', function($scope, $rootScope, FBURL, $firebase, $location, $routeParams, provider) {
$scope.providerId = provider.id;
$scope.links = provider.links;
$scope.address = provider.address;
$scope.title = provider.title;
});
我遇到的问题是{{ links.web }}
,{{ address.street }}
也是如此。但由于某种原因,{{ title }}
无法正常工作。我确定这与我在这些对象上调用$asObject()
这一事实有关。问题是,title
不是一个对象,它只是一个普通的字符串。
任何人都可以指出我在这里做错了什么。任何帮助表示赞赏。提前谢谢!