从Firebase将数据添加到。$ scope

时间:2014-11-07 21:57:57

标签: javascript angularjs firebase

我目前正在尝试在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不是一个对象,它只是一个普通的字符串。

任何人都可以指出我在这里做错了什么。任何帮助表示赞赏。提前谢谢!

0 个答案:

没有答案