2016-08-02 82 views
0

我遇到了我的代碼問題。 $scope$createUserWithEmailAndPassword後沒有更新。但如果我提醒($scope.message),我可以看到警報。我哪裏錯了?

我正在使用來自Firebase和Angularfire的所有更新文件。

我app.js

` 變種spaapp = angular.module( 'spaapp',[ 'ngRoute', '火力']);

spaapp.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider. 
    when('/login', { 
     templateUrl: 'login.html', 
     controller: 'spaController' 
    }). 
    when('/register', { 
     templateUrl: 'register.html', 
     controller: 'spaController' 
    }). 
    when('/success', { 
     templateUrl: 'success.html', 
     controller: 'spaController' 
    }). 
    otherwise({ 
     redirectTo: '/Main' 
    }); 
}]); 

' 我的控制器

spaapp.factory("Auth", ["$firebaseAuth", 
    function($firebaseAuth) { 
    return $firebaseAuth(); 
    } 
    ]); 


spaapp.controller('spaController', ['$scope','$rootScope', 'Auth',function ($scope,$rootScope,Auth) { 
    // $scope.authObj=firebaseAuth(); 
    //var auth = Auth; 
    $scope.login = function() { 

    } 

    $scope.register = function() { 


     var email = $scope.user.email; 
     var password = $scope.user.password; 

    Auth.$createUserWithEmailAndPassword(email, password).then(function(regUser){ 
      $scope.message="Hi" + regUser.uid; 
      console.log("Signed in as:" + regUser.uid); 


     }).catch(
    function(error) { 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    console.log(error.message); 
    $scope.message = error.message; 
    }); 
    }; 


}]); 

任何幫助表示讚賞。

感謝

回答

1

您可以通過$scope

實例調用$apply()刷新角的$scope

spaapp.factory("Auth", ["$firebaseAuth", 
    function($firebaseAuth) { 
    return $firebaseAuth(); 
    } 
    ]); 


spaapp.controller('spaController', ['$scope','$rootScope', 'Auth',function ($scope,$rootScope,Auth) { 
    // $scope.authObj=firebaseAuth(); 
    //var auth = Auth; 
    $scope.login = function() { 

    } 

    $scope.register = function() { 


     var email = $scope.user.email; 
     var password = $scope.user.password; 

    Auth.$createUserWithEmailAndPassword(email, password).then(function(regUser){ 
      $scope.message="Hi" + regUser.uid; 
      console.log("Signed in as:" + regUser.uid); 


     }).catch(
    function(error) { 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    console.log(error.message); 
    $scope.message = error.message; 

    $scope.$apply() // HERE 

    }); 
    }; 


}]); 

更多角度的消化在循環:
http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

+0

謝謝你,我有使用'$ scope。$ apply()'之前,但它給我錯誤錯誤:[$ rootScope:inprog]。 – Uday