2017-05-14 7 views
0

に応じは、コントローラ私はPluralSightにAngularJSとDjango開発コースに沿って、次のしてきた...私のコントローラが登録されていないようですし、私は正直、なぜわからないんだけど、何らかの理由でコンソール

を登録していません。インストラクターのスタックと私の唯一の違いは、私がAngular 1.6.4を使っていて、1.5.0を使っていることです。以前はいくつかのエラー(ルーティング構文など)が発生しましたが、全体的にはうまくいきました。

EDIT:

私は単にインストラクターの指示に従って、彼と同じコードを書いていることを言及する必要があります。


今のところ、私は単純に立ち往生しています。私はscrumboard.config.jsでこのルーティングを持っている:

(function() { 

    "use strict"; 

    angular.module('scrumboard.demo', ["ngRoute"]) 
     .config(["$routeProvider", config]) 
     .run(["$http", run]); 

     function config($routeProvider) { 

      $routeProvider 
       .when('/', { 
        templateUrl: "/static/html/scrumboard.html", 
        controller: "ScrumboardController", 
       }) 
       .when('/login', { 
        templateUrl: "/static/html/login.html", 
        controller: "LoginController", 
       }) 
       .otherwise('/'); 
     } 

     function run($http) { 
      $http.defaults.xsrfHeaderName = 'X-CSRFToken'; 
      $http.defaults.xsrfCookieName = 'csrftoken'; 
     } 
})(); 

そしてlogin.htmlとため、このコントローラ:

(function() { 

    "use strict"; 

    angular.module("scrumboard.demo", []) 
     .controller("LoginController", 
        ["$scope", "$http", "$location", LoginController]); 

    function LoginController($scope, $http, $location) { 

     $scope.login = function() { 

      $http.post('/auth_api/login/', $scope.user) 
       .then(function (response){ 
        $location.url("/"); 
       }, 
       function(error) { 
        //failure 
        $scope.login_error = "Invalid username or password"; 
       }); 
     }; 
    }; 

})(); 

localhost:8000/#!/loginに移動し、私は自分のフォームを見ることができます:

<form ng-submit="login()"> 
    <div style="...">{{ login_error }}</div> 
    <div> 
     <label>Username</label> 
     <input type="text" ng-model="user.username"/> 
    </div> 
    <div> 
     <label>Password</label> 
     <input type="password" ng-model="user.password"/> 
    </div> 
    <div> 
     <button type="submit">Submit</button> 
    </div> 
</form> 

しかし、いくつかの奇妙な理由で私のコンソールは私のLoginControllerが登録された

誰でも正しい方向に私を助けてください。

申し訳ありませんが、私はファイルの種類を見逃していますが、私はAngularを非常に新しくしているので、何を追加すべきか分かりません。

追加情報が必要な場合は教えてください!

+0

index.htmlにロードするスクリプトタグの順序を表示できますか? – zaidfazil

答えて

1

コントローラーの定義からlogin.html[]を削除します。

angular.module("scrumboard.demo") 
    .controller("LoginController", 
       ["$scope", "$http", "$location", LoginController]); 
+0

もう1つの答えで言及したように、私は '[] 'の有無にかかわらず試しましたが、ルートはまだ同じhissyフィットを投げているようです... – geostocker

+0

@geostocker' ScrumboardController'と同じコードを持っていましたか?そこにも[]を移動してください。 – Pengyy

+0

@geostockerええ、私はこれを何度も作っています:P – Pengyy

0

モジュールscrumboard.demoを2回宣言しています。

angular.module()の第2引数なしで

angular.module("scrumboard.demo") 
     .controller("LoginController", 
        ["$scope", "$http", "$location", LoginController]); 

[]を削除するには、それ以外の場合は、エントリポイントのhtml、ファイルscrumboard.configためのスクリプトタグでセッター

+0

それは私も思ったことですが、 '[]'がなくても同じhissyフィットを投げます。私は '[]'を追加して、何らかの違いがあるかどうかを確認しました。しかし、アドバイスをありがとう! :) – geostocker

+0

チュートリアルと同じバージョンにロールバックするとどうなりますか?また、ngRouteのバージョンも一致していることを確認してください。 – charlietfl

+0

また、 'LoginController'があるファイルを含めることを忘れましたか? – charlietfl

0

で、ゲッターです。 jsはファイルコントローラファイルの前に置く必要があります。また、@charlietflは2回宣言を削除する必要があります。このよう

<script src="your_path/scrumboard.config.js"></script> 
<script src="your_path/scrumboard.controller.js"></script> 

がこの問題を修正するだろうと思います。

関連する問題