2014-05-10 2 views
2

필드 이름이나 필드 이름을 배열로 사용하지 않고 양식 내에서 입력 필드 유효성 검사를 추적하는 방법. 사용자 [user_name]?Angularjs 형식의 이름이없는 유효성 입력 필드

샘플 코드 :

<div ng-class="{ 'has-error' : saveUserForm.user[first_name].$invalid && !saveUserForm.user[first_name].$pristine }"> 
    <input type="text" value="{{userAttr.first_name}}" required ng-model="userAttr.first_name" name="user[first_name]" id="inputFirstName"> 
</div> 

"사용자가 [FIRST_NAME]"양식 필드 작동하지 않습니다, 나는 "firstName을"같은 간단한 이름을 변경할 수 없습니다 배열 이름을 사용.

여기서 "inputFirstName"필드의 ID를 사용할 수 있습니까? saveUserForm.inputFirstName. $ invalid?

+0

ng-modal ?????????? – underscore

+0

그것은 ng 모델입니다. 하지만 값을 추적하고 싶지 않습니다. 필드가 유효한지 여부를 추적해야 필드에 오류 클래스를 추가 할 수 있습니다. 예 : ng-class = "{error : userForm.userName. $ invalid}" –

+0

시도하려는 코드를 보여줍니다. – Chandermani

답변

1

name 속성은 필수이지만 * Angular는 이름에 대해 엿듣지 않습니다. 정확하게 참조 된 이름 인 경우 이름이 user[first_name]이면 정상입니다.

가정이 같은 이름 : name="user[first_name]"
당신은 이런 식으로 참조해야합니다 saveUserForm['user[first_name]'].$...

일예

<div ng-class="{'has-error':saveUserForm['user[first_name]'].$invalid&& 
          !saveUserForm['user[first_name]'].$pristine}"> 

참조, 또한,이 short demo.


약간의 설명 : 자바 스크립트 saveUserForm.user[first_name] 에서
a[b] 에 해당하는 곳 a = saveUserForm.userb = first_name


* : 당신은 어떤 이름을 사용하지 않고 멀리 얻을 수 있습니다, 사용자 지정 지시문을 작성하여 부모 양식의 FormController을 확보하고이를 사용하여 요소를 추가하십시오. s $addControl() 방법이지만 실제로는 필요하지 않습니다.

+0

@ExpertSystem에 감사드립니다. –

+0

안녕하세요. 이름 속성을 사용하지 않고 양식의 유효성을 검사 할 수있는 방법이 있습니까? 나는 name = "objectvo.fieldname"을 추가하면 기본적으로 [object object]를 얻는다는 것을 알지 못합니다. –

+0

나는 이미 내 대답에 귀하의 질문에 대답했습니다 :) 특정 문제가있는 경우, 질문을 게시하시기 바랍니다. – gkalpak

관련 문제