簡體   English   中英

AngularFire 0.9使用UI路由器解析

[英]AngularFire 0.9 resolve with UI router

我在這里遵循了一個教程但是以某種方式遇到了這個錯誤

   Unknown provider: currentAuthProvider <- currentAuth

我將currentAuth添加到所有控制器中,可能是什么問題?

 Firebase 2.0.4 
 AngularFire 0.9.0

這是路線文件:

      .config(function($stateProvider, $urlRouterProvider, $locationProvider) {

     $urlRouterProvider.otherwise('/');

     $stateProvider

         .state('home', {
         url: '/',
         templateUrl: 'views/home.html',
         controller: "homeCtrl",
         resolve: {
             "currentAuth": ["userFactory", function(userFactory) {
                 return userFactory.$waitForAuth();
             }]
         }
     })

我只有兩個模塊:

      var warp = angular.module('warp', [
     'firebase',
     'ui.router'
 ])

這是控制器之一:

     angular.module('warp')
    .controller("signupCtrl", ["$rootScope", '$scope', 'userFactory', '$window', '$firebase', '$location', 'USERS', 'currentAuth',
        function($rootScope, $scope, userFactory, $window, $firebase, $location, USERS, currentAuth) {

檢查您的HTML部分視圖,並刪除ng-controller聲明。

NgRoute為您實例化控制器並將其綁定到視圖中定義的DOM,因此無需在視圖的部分HTML中使用ng-controller指定控制器。

這有效:

<!-- in it's own HTML file, say  views/signupCtrl.html -->
<div>  <!-- Look, no need for ng-controller="signupCtrl"... -->
  ...signup Form etc...
</div>

如果您確實在其中留下了ng-controller定義(我懷疑您所做的事情),將會發生什么,即angular將嘗試實例化控制器兩次:

  • 一旦在加載DOM時遇到它,就不會定義currentAuth ,因此,如果將它列為控制器中的依賴項,則會收到一個未知的提供程序錯誤。
  • 一旦解決完成。

您只需要向處理登錄的Controller注入“ currentAuth”對象。 當我從所有其他Controller刪除它時,為我工作。

暫無
暫無

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

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