我正在创建一个指令,该指令将带有文本类型输入的模板添加到视图中。在此指令中,如果文本字段输入超过提供的最大长度设置,我将尝试添加跨度类以进行错误通知。我有这样的代码:
<div ng-app="app">
<form name="userForm" ng-submit="processForm()" novalidate>
<div use-text-box name="xyz" ng-maxlength="10" required> </div>
<button type="submit" class="btn btn-success">Submit</button>
</form>
</div>
我的指令是这样的:
var app = angular.module('app', []);
app.directive('useTextBox', function() {
return {
replace:true,
compile: function(element,attrs) {
var name = attrs.name;
var maxLengthError = attrs.hasOwnProperty('ngMaxlength') ? '<span ng-show="userForm.' + attrs.name + '.$error.maxlength" class="help-block">Text is too long. The limit is ' + attrs.ngMaxlength + ' characters.</span>' : '';
var htmlText = '<input type="text" name="' + name + '" ng-maxlength="' + attrs.ngMaxlength + '" required />' +
maxLengthError;
element.replaceWith(htmlText);
}
};
});
但在上面的代码中,指令生成输入文本字段等。没有问题。但是,如果最大长度超过 10,则不会显示错误消息。我做错了什么?
以下是上述示例的 jsfiddle 链接:http: //jsfiddle.net/fB45J/3/