2016-08-02 17 views
0

Ich habe ein Problem mit meinem Code. $scope Wert wird nach $createUserWithEmailAndPassword nicht aktualisiert. aber wenn ich alarm mache ($scope.message), kann ich die Warnung sehen. Wo gehe ich falsch?

Ich verwende alle aktualisierten Dateien von Firebase und Angularfire.

Mein app.js

` var spaapp = angular.module ('spaapp' [ 'ngRoute', 'Feuerbasis']);

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' 
    }); 
}]); 

' mein Controller

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; 
    }); 
    }; 


}]); 

Jede Hilfe ist willkommen.

Dank

Antwort

1

Sie können $scope Winkel des aktualisieren, indem $apply() auf $scope

Beispiel Aufruf:

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 

    }); 
    }; 


}]); 

Mehr über den Winkel verdauen Schleife an:
http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

+0

Danke, ich habe used '$ scope. $ apply()' vor, aber es gibt mir ein Fehler Fehler: [$ rootScope: inprog]. – Uday