2013-06-26 6 views
0

Newbie to AngularJS, 죄송합니다.AngularJS 형식의 입력 포커스입니다. 데이터가 모델에 표시되지 않습니다.

특정 양식 입력에 특정 기준에 따라 포커스가 설정되기를 바랍니다. 대답은 이미 with this answer (focusMe)입니다.

문제는 양식 입력이 모델에 표시되지 않는다는 것입니다. 여기

<input type='text' name='school_name' ng-model='plan.school_name' focus-me="{{true}}"/> 

내 문제를 보여주기 위해 jsfiddle입니다.

내가 뭘 잘못하고 있니?

+0

정상에 jsfiddle 몇 가지 문제가 응용 프로그램이 잘 작동합니다. –

+0

아니요, 내 응용 프로그램에있는 것과 정확히 같은 동작입니다. –

답변

1

지시어 정의 객체에 scope 속성을 정의했습니다. 그렇게하면 전체 요소 위에 격리 된 범위가 만들어 지므로 해당 요소 (ngModel 포함)에 적용되는 다른 모든 지시문도 영향을받습니다.

이 문제

다른 곳에서 해결되었습니다 (참조 " form element ng-model change not observered in isolate scope directive watch", " ngModel and component with isolated scope"및 github issue 1924)하지만 극복 할 매우 복잡합니다. 대신이 특별한 경우 당신이 내 액세스 attrs 객체와 focus-me 속성에, 고립 된 범위를 정의

가 ($ 사용하여 관찰 방법) :

var myApp = angular.module('myApp',[]).directive('focusMe', function($timeout) { 
    return function(scope, element, attrs) { 
     attrs.$observe('focusMe', function(value) { 
      if (value==="true") { 
       $timeout(function(){ 
        element[0].focus(); 
       },5); 
      } 
     }); 
    } 
}); 

DEMO FIDDLE

+0

굉장하고 고마워요. –