2016-12-28 1 views
0

컨트롤러 내부에서 양식 필드의 $ valid 속성에 액세스하려고하면 "$ undefined of valid"에 액세스 할 수 없습니다. 난 이미 내 경로에 controllerAs을 사용했지만 좋은 측정을 위해 나는 NG 컨트롤러 testCtrl로 = "TestCtrl 추가 -각도 컨트롤러에서 양식에 액세스하는 데 문제가 발생했습니다.

  1. 사용 controllerAs : 여기 아무 소용이, SO에 다른 답변에 따라 시도했습니다 무엇 "내 컨테이너 DIV.
  2. 범위를 전달하여 ng-init을 추가했습니다. form 태그 (ng-init = testFunction (this))에 ng-init을 추가하여 formScope라는 범위에서 프로퍼티를 설정하는 컨트롤러 함수를 호출했습니다. AngularJs can't access form object in controller ($scope))
  3. 보십시오 범위 내가 지금 기억하지 못할 = {} 컨트롤러에서
  4. 몇 가지 다른 제안

내 요구 사항, 나에게, 간단한 있습니다. 때 필드로드 (컨트롤러로드 모델 데이터)를 사용하려면 다음을 수행해야합니다.

  1. 필드 옆에 적절한 확인 글리프콘을 표시하십시오.
  2. 이 때 필드의 유효성이 변경되면 glyphicon 이에 따라
  3. 아이콘을 변경해야 :
    은 $ 유효 = false를 사용
    $ 유효 = 사실, 사용 glyphicon-확인
    널 (null) = $ 유효하거나 정의를 glyphicon-제거 할 때 https://embed.plnkr.co/XXFM6Mtt1KnSci5yagTd/

    어떤 도움이나 다른 (? 가능)를 참조 지시문에 다음 쿵하는 소리를 (향후 사용)

를 유효성을 통과 할 수 glyphicon 경보 서명

  • 를 사용 접근 방식은 높이 평가됩니다. 이것은 내 엉덩이를 걷어차. 감사합니다

  • 답변

    2

    말했다

    self.sexValid = self.testForm.sex.$valid; 
    

    , 왜 컨트롤러의 필드에 해당 정보를 복제

    self.sexValid = testForm.sex.$valid; 
    

    로 교체하는 대신 단순히보기에 직접

    testCtrl.testForm.sex.$valid 
    

    를 사용하여 ?

    +0

    좋은 지적. 내가 생각하기에 문제를 overthinking. 도움을 주셔서 감사합니다. 실제 앱에서 사용해 보았습니다. 정말 고마워. – miarde

    관련 문제