首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制器未根据控制台注册

控制器未根据控制台注册
EN

Stack Overflow用户
提问于 2017-05-14 14:41:29
回答 3查看 28关注 0票数 1

因为某种原因,我的管理员似乎没有注册,我真的不知道为什么.

我一直在学习AngularJS和Django在PluralSight上的开发过程。教官和我之间唯一的区别是,我用的是角1.6.4,他用的是1.5.0。我以前遇到过一些错误(比如路由语法),但总体来说还不错。

编辑:

我应该提到的是,我只是按照老师的指示写了和他一样的代码。

但是现在,我只是被困住了。我在scrumboard.config.js中找到了这个路由

代码语言:javascript
复制
(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

代码语言:javascript
复制
(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时,我可以看到我的表单:

代码语言:javascript
复制
<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没有注册。

有人能帮我朝正确的方向走吗?

对不起,如果我错过了任何类型的文件,但我是非常新的角,所以我真的不知道要添加什么。

如果您需要更多的信息,请告诉我!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-14 14:47:01

从控制器对[]的定义中删除login.html

代码语言:javascript
复制
angular.module("scrumboard.demo")
    .controller("LoginController",
                ["$scope", "$http", "$location", LoginController]);
票数 1
EN

Stack Overflow用户

发布于 2017-05-14 14:47:38

您将声明模块scrumboard.demo两次。

删除[]中的

代码语言:javascript
复制
 angular.module("scrumboard.demo")
        .controller("LoginController",
                    ["$scope", "$http", "$location", LoginController]);

如果没有angular.module()的第二个参数,它就是一个getter,否则它就是一个setter。

票数 0
EN

Stack Overflow用户

发布于 2017-05-14 14:58:19

在入口点html中,文件scrumboard.config.js的脚本标记应该位于文件控制器文件的前面。同样,正如@charlietfl所说,应该删除两次声明。

像这样,

代码语言:javascript
复制
<script src="your_path/scrumboard.config.js"></script>
<script src="your_path/scrumboard.controller.js"></script>

希望这能纠正这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43965175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档