2014-02-26 56 views
0

我有一個使用angular-ui-bootstrap提供tabs組件的小型SPA。該應用程序通常只顯示顯示應用程序運行狀態的數據,但其中一個選項卡具有輸入字段,該字段在打開該選項卡時應該獲得焦點。angular.element(「inputFieldId」)。focus()不會將焦點放在輸入字段

每個選項卡組件的控制器都有一個「tabOpened」和「tabClos​​ed」函數,當該選項卡打開或關閉時會調用該函數。

在控制器與輸入字段的標籤,我有以下幾點:

$scope.tabOpened = function() { 
    $timeout(function() { 
     angular.element("handlerSearchInput").focus(); 
    }); 
}; 

值得爭論它是否是合理的,這樣做的控制器,而不是工程某種指令,使「焦點()」呼叫,但這不是我首先需要解決的問題。我的第一個問題是這段代碼實際上不工作。當我打開選項卡時,我可以看到它打到了函數的斷點處,但是該字段沒有獲得焦點。沒有錯誤,它只是不起作用。

我已經在Firefox和Chrome中對此進行了測試。

回答

0

angular.element或者取string - 在這種情況下,它會創建一個新的元素,或jQuery選擇將返回現有的元素

所以你應該使用angular.element("#handlerSearchInput").focus();

API

+0

咄。就是這樣。謝謝。 –

相關問題