簡體   English   中英

如何使用angularJS作用域綁定Firebase數據

[英]How to bind data of firebase with angularJS scope

嗨,我該如何綁定我從firebase接收到的數據與angularJS中的作用域。 我是新來的,盡管通過w3school 所以我不確定我缺少什么。 我在用

"angular": "^1.7.2",
"angular-route": "^1.7.2",
"firebase": "^5.2.0",

我的代碼是這樣的

app.config(function($routeProvider){
  $routeProvider
  .when('/',{
    templateUrl:'home.html',
    controller:'UserController'
  })
})
app.controller("UserController",  function ($scope, $routeParams, $location) {
    firebaseRef.child('users').on("value", function(response) {
      $scope.userCount=response.numChildren();
  });
})

在html中,我這樣做

<html lang="en" ng-app="my-first-app">
............<HEADER AND TITLE  AND BODY>......
    <h3>User count : {{userCount}} </h3>
</body>
</html>

但是,即使我console.log response.numChildren()的值,也看不到4

誰能告訴我我做錯了什么嗎?

到您的Firebase on("value"回調被調用時,AngualarJS不再期望對HTML進行更改。因此,您必須使用$apply()$timeout()明確告知它正在更改HTML。 :

app.controller("UserController",  function ($scope, $routeParams, $location) {
    firebaseRef.child('users').on("value", function(response) {
      $timeout(function() {
        $scope.userCount=response.numChildren();
      });
  });
}

另請參閱:

您需要將ng-view添加到視圖中。

像這樣嘗試

 var app = angular.module("my-first-app",["ngRoute"]); app.config(function($routeProvider){ $routeProvider .when('/',{ template:'<h3>User count : {{userCount}} </h3>', controller:'UserController' }) }) app.controller("UserController", function ($scope, $routeParams, $location) { $scope.userCount = 3; }) 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular-route.min.js"></script> <div ng-app="my-first-app"> <div ng-view></div> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM