我使用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>
怎么了?
答案 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中找到