Javascript 链接$transclude函数中的ngMessage(找不到控制器和ngMessages)
我已创建了用于消除表单错误消息代码重复的指令:Javascript 链接$transclude函数中的ngMessage(找不到控制器和ngMessages),javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我已创建了用于消除表单错误消息代码重复的指令: angular.module('errorMessages', ['ngMessages']) .directive('meErrorMessages', function() { return { templateUrl: '/app/common/errorMessages/errorMessages.html', transclude: true, sc
angular.module('errorMessages', ['ngMessages'])
.directive('meErrorMessages', function() {
return {
templateUrl: '/app/common/errorMessages/errorMessages.html',
transclude: true,
scope : {
formName: '=',
inputName: '='
},
link: function ($scope, $element, $attrs, $ctrl, $transclude) {
$transclude(function(
angular.forEach(clone, function(cloneElement) {
cloneElement.class = 'errorBox';
})
})
}
}
});
使用HTML模板:
<div ng-show="inputName.$touched || formName.$submitted" ng-messages="inputName.$error">
<ng-transclude></ng-transclude>
</div>
当我删除
链接
功能时,转写的内容将正确显示和隐藏。$transclude
函数有什么问题,我如何修改转写内容的DOM?我可能错了,但我认为你不应该同时使用ngTransclude
和$transclude
,只使用其中一个。你是对的。但移除它并没有帮助。
<input id="name" name="name" type="text" ng-model="user.name" required />
<me-error-messages form-name="registrationForm"
input-name="registrationForm.name">
<div ng-message="required">Required</div>
</me-error-messages>
Error: [$compile:ctreq] Controller 'ngMessages', required by directive 'ngMessage', can't be found!