我正在使用AngularJS构建一个web应用程序,我对此表示怀疑,因为我不知道实现使用输入表单的指令的最佳方法是什么。我有以下指令:
angular.module('myApp').directive('personal', [function () {
return {
restrict: 'E',
scope : {
model : '=ngModel',
label : '@',
},
require: '^form',
templateUrl : 'personal.html',
link: function (scope, iElement, iAttrs, ngModelController) {}
};
}]);
personal.html
<input type="text" name="name{{label}}" ng-model="model.name" ng-pattern="/^[A-Za-z]*$/">
<div class="error-container" ng-show="data.name{{label}}.$invalid">
<small class="error" ng-show="data.name{{label}}.$error.pattern">Invalid format</small>
</div>
index.html
....
<form novalidate name="data">
<personal label="personal" ng-model="general"></personal>
<!-- here I will need add more tags 'personal' ..is a requirement -->
</form>
...
形式呈现得很好。但是当输入名称{{label}}包含无效内容时,将不会显示错误消息(如果我将templateUrl内容放在index.html上,则有效)。
谢谢你的预付款。
templateUrl中的data.whatever
无权访问表单控制器。您已经创建了一个隔离作用域,因此它无法访问表单name=data。我现在不在电脑前,所以我不能给你举一些具体的例子,但要读一下表单控制器。