对传递给指令 AngularJS 的表单不起作用验证



我正在使用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。我现在不在电脑前,所以我不能给你举一些具体的例子,但要读一下表单控制器。

相关内容

  • 没有找到相关文章

最新更新