2013-06-26 84 views
0

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

您在指令定義對象上定義了範圍屬性。當你這樣做的時候,你在整個元素的頂部創建了一個獨立的範圍,以便應用於該元素的所有其他指令(包括ngModel)也受其影響。

這個問題在其他地方得到解決(見「form element ng-model change not observered in isolate scope directive watch」,「ngModel and component with isolated scope」和github issue 1924),但它是很麻煩需要克服。

而不是定義一個孤立的範圍,在這個特殊的情況下,你我訪問你的focus-me屬性與attrs對象的(使用$觀察法):

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

真棒,謝謝 –

相關問題