我的控制器不工作

my controller doesn't work

本文关键字:工作 控制器 我的      更新时间:2023-09-26

我创建一个应用程序,一个登录页面和一个控制器,如下所示:----->

--->这里:)

(function(){
    'use strict';
    angular
        .module("loginApp",[])
        .controller("loginCtrl",loginCtrl);
    loginCtrl.$inject = ['$location','$scope','loginService'];
    function loginCtrl($location,$scope,loginService){
        var vm = $scope;
        vm.login = login;
        function login(){
            var user = vm.user;
            console.log(user);
        };
    }
})();
<body ng-app="loginApp" ng-controller="loginCtrl">
<div class="col-md-6 col-md-offset-3">
    <h2>Login</h2>
    <form name="form" ng-submit="login()" role="form" method="post">
        <div class="form-group" ng-class="{ 'has-error': form.username.$dirty && form.username.$error.required }">
            <label for="username">Username</label>
            <input type="text" name="username" id="username" class="form-control" ng-model="user.username" required />
            <span ng-show="form.username.$dirty && form.username.$error.required" class="help-block">Username is required</span>
        </div>
        <div class="form-group" ng-class="{ 'has-error': form.password.$dirty && form.password.$error.required }">
            <label for="password">Password</label>
            <input type="password" name="password" id="password" class="form-control" ng-model="user.password" required />
            <span ng-show="form.password.$dirty && form.password.$error.required" class="help-block">Password is required</span>
        </div>
        <div class="form-actions">
            <button type="submit" ng-disabled="form.$invalid || dataLoading" class="btn btn-primary">Login</button>
            <img ng-if="dataLoading"/>
            <a href="#/register" class="btn btn-link">Register</a>
        </div>
    </form>
</div>
  ...................
<!-- App -->
<script src="angular/scripts/login.router.js"></script>
<script src="angular/scripts/controllers/login/loginCtrl.js"></script>

但是当我点击按钮"登录()"时,什么也没发生。 我不知道为什么.

因为您不直接在控制器中使用范围(好方法),所以您必须在 html 中设置别名(loginCtrl 作为登录名)。然后,设置模型并使用别名作为前缀(login.user.username)调用ctrl函数。

<body ng-app="loginApp" ng-controller="loginCtrl as login">
<div class="col-md-6 col-md-offset-3">
    <h2>Login</h2>
    <form name="form" ng-submit="login.login()" role="form" method="post">
        <div class="form-group" ng-class="{ 'has-error': form.username.$dirty && form.username.$error.required }">
            <label for="username">Username</label>
            <input type="text" name="username" id="username" class="form-control" ng-model="login.user.username" required />
            <span ng-show="form.username.$dirty && form.username.$error.required" class="help-block">Username is required</span>
        </div>
        <div class="form-group" ng-class="{ 'has-error': form.password.$dirty && form.password.$error.required }">
            <label for="password">Password</label>
            <input type="password" name="password" id="password" class="form-control" ng-model="login.user.password" required />
            <span ng-show="form.password.$dirty && form.password.$error.required" class="help-block">Password is required</span>
        </div>
        <div class="form-actions">
            <button type="submit" ng-disabled="form.$invalid || dataLoading" class="btn btn-primary">Login</button>
            <img ng-if="dataLoading"/>
            <a href="#/register" class="btn btn-link">Register</a>
        </div>
    </form>
</div>
  ...................
<!-- App -->
<script src="angular/scripts/login.router.js"></script>
<script src="angular/scripts/controllers/login/loginCtrl.js"></script>