在angularjs

时间:2016-09-04 05:51:34

标签: javascript angularjs

我使用megaboiletplate.com对我的项目进行scalfoding。我下载了一个入门包,但我遇到了一些问题。我把入门代码放到了回购

this file中,单击登录按钮时未触发第16行。登录按钮具有如下视图

<form ng-submit="login()">
        <legend>Log In</legend>
        <div class="form-group">
          <label for="email">Email</label>
          <input type="email" name="email" id="email" placeholder="Email" class="form-control" ng-model="user.email" autofocus>
        </div>
        <div class="form-group">
          <label for="password">Password</label>
          <input type="password" name="password" id="password" placeholder="Password" class="form-control" ng-model="user.password">
        </div>
        <div class="form-group"><a href="/forgot"><strong>Forgot your password?</strong></a></div>
        <button type="submit" class="btn btn-success">Log in</button>
      </form>

怎么了?

1 个答案:

答案 0 :(得分:0)

确保您的代码使用'controller as'语法。您可以在控制器中使用this,但必须在HTML中重新定义控制器。像:

<body ng-controller="mycontroller as ctrl">

然后你可以使用像

这样的控制器功能
<form ng-submit="ctrl.login()">

https://docs.angularjs.org/api/ng/directive/ngController

如果您的控制器已分配到路由器,则可能需要编辑路由。

.when('/login', {
        templateUrl: 'partials/login.html',
        controller: 'LoginCtrl',
        resolve: { skipIfAuthenticated: skipIfAuthenticated }
      })

将更改为:

.when('/login', {
        templateUrl: 'partials/login.html',
        controller: 'LoginCtrl',
        controllerAs: 'ctrl',
        resolve: { skipIfAuthenticated: skipIfAuthenticated }
      })

在你的情况下,这应该在样板的app.js中找到