2017-07-20 10 views
0

私は角のエラーが発生していくつかの助けが必要です!エラーへ リンク:https://docs.angularjs.org/error/ng/areq?p0=LoginCtrl&p1=not%20aNGエラーを解決できません:不正な引数

"Error: ng:areq 
Bad Argument 
Argument 'LoginCtrl' is not a" 

私は今、いくつかの時間のためにこれに取り組んできたと私はここで間違ってやっているものを見つけることができません。私はこのエラーを調べてスクリプトが正しいと思っています。私の関数は正しい構文であると信じています...私はng-viewを取り出して別の部分に入れようとしました。

のindex.html:

<!DOCTYPE html> 
    <html> 
    <head> 
     <title>Memory Game</title> 
    <!-- <meta name="google-signin-client_id" content="344924208843-lr7f74mh6q2j9sn3kadb5i93m6ne6pnd.apps.googleusercontent.com"> --> 
    </head> 
    <link rel="stylesheet" href="lib/node_modules/bootstrap/dist/css/bootstrap.min.css"> 
    <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css"> 

    <link rel="stylesheet" type="text/css" href="styles/main.css"> 

    <div ng-include="'partials/navBar.html'"></div> 

    <body ng-app="MemoryGame"> 

    <div class="ng-view"> 

    </div> 

    <script type="text/javascript" src="lib/bower_components/jquery/dist/jquery.min.js"></script> 
    <script type="text/javascript" src="https://cdn.firebase.com/js/client/2.4.2/firebase.js"></script> 
    <script type="text/javascript" src="lib/node_modules/angular/angular.min.js"></script> 
    <script type="text/javascript" src= "lib/node_modules/angularfire/dist/angularfire.min.js"></script> 
    <script type="text/javascript" src="lib/node_modules/angular-route/angular-route.min.js"></script> 



    <!-- My Stuff --> 
    <script type="text/javascript" src="app/app.js"></script> 
    <script type="text/javascript" src="app/factories/authFactory.js"></script> 
    <script type="text/javascript" src="app/factories/gameFactory.js"></script> 
    <script type="text/javascript" src="app/controllers/LoginCtrl.js"></script> 
    <script type="text/javascript" src="app/controllers/ProfileCtrl.js"></script> 
    <script type="text/javascript" src="app/controllers/DashboardCtrl.js"></script> 

    </body> 
    </html> 

LoginCtrl.js

'use strict' 

app.controller("LoginCtrl", function($scope, $rootScope,$location, $window,firebaseURL, authFactory) { 

    let ref = new Firebase(firebaseURL); 

    if($location.path() === "/login") { 
    ref.unauth() 
    }; 

$scope.login =() => { 
    authFactory 
     .Googlelogin($scope.account) 
     .then(function(stuff) { 
     $window.location.assign('/#/profile'); 
     }) 
    }; 
}); 

app.js

'use strict' 

var app = angular.module("MemoryGame", ["ngRoute"]) 
    .constant("firebaseURL", "https://memapp.firebaseio.com/"); 

let isAuth = (authFactory) => new Promise((resolve, reject) => { 
    if(authFactory.isAuthenticated()) { 
    console.log("User is authenticated, resolve route promise"); 
    resolve(); 
    } else { 
    console.log("User is not authenticated, reject route promise"); 
    reject(); 
    } 
}); 


app.config(function($routeProvider) { 
    $routeProvider. 
    when('/', { 
    templateUrl:'partials/userProfile.html', 
    controller: "ProfileCtrl" 
    // resolve: {isAuth}, 
    }). 
    when('/login',{ 
    templateUrl:'partials/login.html', 
    controller:"LoginCtrl" 
    }). 
    when('/profile',{ 
    templateUrl:'partials/userProfile.html', 
    controller:"ProfileCtrl", 
    resolve: {isAuth}, 
    }). 
    when('/dashboard',{ 
    templateUrl:'partials/dashboard.html', 
    controller:"DashboardCtrl", 
    resolve: {isAuth} 
    }). 
    otherwise('/') 
}); 

profileCtrl.js

'use strict' 
app.controller("ProfileCtrl", function($scope, $rootScope, $location,$timeout,firebaseURL, gameStorage){ 

let matches = []; 
let moves = 0; 
let score = 0; 

//an array of objects for cards 
$scope.cards = [ 
    {id :"card1",isFlipped:false, emojPics:"../data/Emoji-Poop.png", value:0}, 
    {id: "card2",isFlipped: false, emojPics:"../data/Emoji-facePlant.png", value:1}, 
    {id: "card3",isFlipped:false, emojPics: "../data/Emoji-Whatever.jpeg", value:2}, 
    {id :"card1",isFlipped:false, emojPics:"../data/Emoji-Poop.png", value:3}, 
    {id: "card2",isFlipped: false, emojPics:"../data/Emoji-facePlant.png", value:4}, 
    {id: "card3",isFlipped:false, emojPics: "../data/Emoji-Whatever.jpeg", value:5} 
]; 

//setting display/username to root scope 
$rootScope.loggedInUserDisplayName = ""; 
console.log("rootScope validated"); 

//checks for number of cards clicked 
function checkRound(card) { 
    moves += 1 
    console.log("number of moves ",moves) 
    if (moves <= 2){ 
    isFlipped(card); 
    console.log("does this trigger a 2nd time? "); 
    } 
    else if(moves > 2) { 
    console.log("More than 2 Moves"); 
    } 
}; 

AuthFactory.js

app.factory("authFactory", function(firebaseURL,$rootScope) { 
    let ref = new Firebase(firebaseURL); 
    let currentUserData = null; 
    let isNewUser = true; 

    return { 

    Determine if the client is authenticated through firebase 

    isAuthenticated() { 
     let authData = ref.getAuth(); 
     //if statement if user is authenticated or not 
     return (authData) ? true : false; 
    }, 

    getUser() { 
     return currentUserData; 
    }, 


//Authenticate the client via Firebase 

    Googlelogin(){ 
     return new Promise((resolve, reject) => { 
     ref.authWithOAuthPopup("google", function(error, authData) { 
      console.log("auth error", error); 
      if (error) { 
      console.log("Login Failed!", error); 
      reject(); 
      }else{ 
      console.log("Authenticated successfully with payload:", 
      authData); 
      $rootScope.username = authData.google.displayName; 
      resolve(authData); 
      } 
     }) 
     }) 
    }, 

    Store each Firebase user's id in the `users` collection 

    storeUser (authData) { 
     let stringifiedUser = JSON.stringify({ uid: authData.uid }); 

     return new Promise((resolve, reject) => { 
     $http 
      .post(`${firebaseURL}/users.json`, stringifiedUser) 
      .then(
      res => resolve(res), 
      err => reject(err) 
     ); 
     }); 
    } 
    }; 
}); 

gameFactory.js

'use strict' 
app.factory("gameStorage", function($q, $http, firebaseURL, authFactory){ 

var getGameList = function(){ 
     let games = []; 
     let ref = new Firebase(firebaseURL); 
     let authData = ref.getAuth(); 
     let user = authFactory.getUser(); 
    return $q(function(resolve, reject){ 
     $http.get(`${firebaseURL}games.json?orderBy="uid"&equalTo= "${authData.uid}"`) 
     .success(function(gameObject){ 
      var gameCollection = gameObject; 
      Object.keys(gameCollection).forEach(function(key){ 
      gameCollection[key].id=key; 
      games.push(gameCollection[key]); 
      console.log("gameCollection",gameCollection); 
       }); 
      resolve(games); 
       }) 
      .error(function(error){ 
      reject(error); 
     }); 
    }); 
    }; 
// 
// var getSingleGame = function(gameId) { 
//  console.log("gameId",gameId); 
//  return $q(function(resolve, reject){ 
//  $http.get(firebaseURL + "games/"+gameId+".json") 
//   .success(function(gameObject){ 
//   resolve(gameObject); 
//   }) 
//   .error(function(error){ 
//   reject(error); 
//   }); 
//  }); 
// } 
// 
// var deleteGame = function(gameId){ 
//  return $q(function(resolve, reject){ 
//  $http 
//   .delete(firebaseURL + `games/${gameId}.json`) 
//   .success(function(objectFromFirebase){ 
//    resolve(objectFromFirebase); 
//   }); 
//  }); 
// }; 
// 
//  var postNewGame = function(newGame){ 
//   // let user = authFactory.authData.displayName 
//   // console.log("user",user); 
//   let ref = new Firebase(firebaseURL); 
//   let authData = ref.getAuth(); 
//   // console.log("authData",authData); 
//   console.log("uid", authData.uid); 
//    return $q(function(resolve, reject) { 
//     $http.post(
//     firebaseURL + "games.json", 
//     JSON.stringify({ 
//      uid: authData.uid, 
//      timeLeft: newGame.timeLeft, 
//      matches: newGame.matches 
//      }) 
//    ) 
//    .success(
//     function(objectFromFirebase) { 
//      resolve(objectFromFirebase); 
//     }); 
//   }); 
//  }; 
// 
// 
return{postNewGame:postNewGame,getGameList:getGameList,deleteGame:deleteGame,getSingleGame:getSingleGame}; 

}); 
+0

エラーが発生した完全なURLを投稿できますか? –

+0

はい、@MikeFeltmanはこちらです:https://docs.angularjs.org/error/ng/areq?p0=LoginCtrl&p1=not%20a – schall

+1

これは切り詰めて見えます。通常、角度はそれ以上のものを与えます。 –

答えて

0

ProfileCtrlは小文字の "P" を持つファイルprofileCtrl.jsにある場合。ファイルの<script>参照の大文字と小文字の区別のためにファイルが読み込まれていない可能性があります。

変更:

<script type="text/javascript" src="app/controllers/ProfileCtrl.js"></script> 

へ:

<script type="text/javascript" src="app/controllers/profileCtrl.js"></script> 

それともProfileCtrl.jsprofileCtrl.jsからファイルの名前を変更してみてくださいは<script>参照を一致させます。

更新:あなたの他のerrorに関しては

、私はそれがindex.htmlAuthFactory.jsファイルを参照して発生した同じ大文字と小文字の区別の問題だと思います。そのファイルはロードされていないため、エラーUnknown Providerが原因です。

<script type="text/javascript" src="app/factories/authFactory.js"></script> 

へ:

<script type="text/javascript" src="app/factories/AuthFactory.js"></script> 

うまくいけば、助けること

変更が発生しています!

+0

さて、私は新しいエラーが発生したので、それは良いことです! https://docs.angularjs.org/error/$injector/unpr?p0=authFactoryProvider%20%3C-%20authFactory%20%3C-%20LoginCtrl Good eye !! – schall

+0

問題はありません、それは手助けしてうれしい、嬉しいことができます! –

+0

私の更新された答えを見て、あなたの 'AuthFactory.js'ファイルに同じ大文字と小文字の区別の問題があると思います。 'index.html'の' authFactory.js'を小文字の "a"で参照しています。ファイル名と一致するように大文字にする必要があります。 –

0

私はこの問題は、ここに存在していると信じて:

<div ng-include="'partials/navBar.html'"></div> 

<body ng-app="MemoryGame"> 

あなたはNG-アプリのインクルージョンの外に含ま角度コードを持っています。

ng-app = "MemoryGame"をhtmlタグに付けるか、ng-includeを本体の内側に置くことをお勧めします。これはhtmlの大文字と小文字を区別しません。

これが役に立ちます。

+0

ありがとう!私はこれと一緒に遊びます...私はまだこのインジェクターのエラーを受けています https://docs.angularjs.org/error/$injector/unpr?p0=authFactoryProvider%20%3C-%20authFactory%20%3C-% 20LoginCtrl 私はこれについて良いスタートがあると思います!あなたの助けをもう一度ありがとう! – schall

関連する問題