내 응용 프로그램의 여러 양식 내에서 유효성 검사가 완료된 전자 메일 입력 필드 인 동일한 지시문을 사용하려고합니다. (최근 사용한 전자 메일 목록에서 값을 가져옵니다. 이 질문과 관련이 없음). 지시문을 사용하는 양식은 사용하는 위치에 따라 다르므로 ng-messages 속성을 동적으로 렌더링해야합니다.동적으로 ng-messages에 양식 이름을 설정합니다.
동적으로 자체 메시지를 설정하기 위해 ng-messages를 가져 왔지만 예상대로 작동하지 않습니다. 여기에 코드입니다 :
form.html
<form name="joinForm">
<rt-recents-menu ng-model="vm.roomName"/>
</form>
directive.coffee
recents = angular.module 'rtRecents', ['ionic', 'ngMessages']
.factory('rtRecentsService', require './recentsService')
.directive('rtRecentsMenu', (rtRecentsService, $ionicActionSheet) ->
restrict: 'E'
template: require './recentsMenu.html'
scope:
ngModel: '=?'
require: ['?ngModel', '^form']
transclude: false
replace: false
link: (scope, element, attrs, ctrls) ->
ngModel = ctrls[0]
formCtrl = ctrls[1]
scope.formName = formCtrl.$name
module.exports = recents.name
directive.html 내 경우
<div class="email-line">
<input type="email"
name="roomName"
required
ng-model="ngModel"
ng-keydown="onKeyDown()"/>
<div id="email-error-messages" ng-messages="{{formName}}.roomName.$error" multiple role="alert">
<div ng-message="required" class="warn" translate>VALIDATION.EMAIL_REQUIRED_ERROR</div>
<div ng-message="email" class="warn" translate>VALIDATION.EMAIL_INVALID_ERROR</div>
</div>
</div>
이것은 고통이었습니다. 이 문제에 대한 인터넷 검색은 많은 ng-repeat 생성 입력 필드가있는 페이지에서 단일 양식을 사용하는 사람들에게만 제공됩니다. 알아내는 동안 잠시. 내가 당신을 위해 아래에서 어떻게 작동하는지 알려주십시오. 조금 조정해야한다면 제가 도울 수 있습니다. 해피 ng 코딩! –