【发布时间】:2015-10-22 17:40:23
【问题描述】:
我正在尝试创建一个简单的密码确认,如下所示
<div class="form-group">
<label class="col-sm-2 control-label" for="password">Password:</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password" placeholder="Password" data-ng-model="myApp.password" required >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="confirmPassword">Confirm password:</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="confirmPassword" placeholder="Confirm password" data-ng-model="confirmPassword" required pw-check="password">
<p class="msg-error" ng-show="create_player_form.confirmPassword.$error.pwmatch">
Passwords don't match.
</p>
</div>
</div>
这个 HTML 文件链接到这样定义的控制器:
angular.module('myApp')
.controller('MyController', function ($scope, $state, $stateParams) {
(All the staff...)
}
我使用这样的指令:
.directive('pwCheck', [function () {
return {
scope: {pwmatch: '='},
require: 'ngModel',
link: function (scope, elem, attrs, ctrl) {
var firstPassword = '#' + attrs.pwCheck;
elem.add(firstPassword).on('keyup', function () {
scope.$apply(function () {
var v = elem.val() === $(firstPassword).val();
ctrl.$setValidity("pwmatch", v);
});
});
}
}
}]);
一切正常,除了确认输入下的小错误消息。谁能帮我让它出现?
我公开地说,我正在使用:http://blog.brunoscopelliti.com/angularjs-directive-to-check-that-passwords-match/ 而且我看到,控制器以不同的方式定义,但我想在不改变现有结构的情况下简单地制作它。
【问题讨论】:
-
您遇到的错误消息是什么问题,它没有出现吗?
-
@Treck 如果您仔细观察您遵循的示例,它会检查表单名称,然后输入名称为 confirmPassword 的标签。如果您观察您的 html 代码,您似乎缺少输入标签 ng-show="create_player_form.confirmPassword.$error.pwmatch" 的名称
标签: javascript angularjs passwords