2016-01-07 110 views
0

我有兩個引導標籤,我在第一個標籤上顯示列表,第二個標籤上會有用於添加新記錄的文本框。現在AngularJs - 無法調用點擊JavaScript標籤的點擊功能

<ul class="nav nav-tabs naviborder"> 
    <li class="active" ng-click="showTasksList()"> 
     <a class="icontab" data-target="#divTasks" data-toggle="tab">Tasks</a> 
    </li> 
    <li ng-click="addTask()" id="liCreateTask"> 
     <a id="aAddTask" class="icontab" data-target="#divCreateTask" data-toggle="tab">Create Task</a> 
    </li> 
</ul> 

名單上,我有一些編輯按鈕,然後單擊上,我將填充在第二個選項卡中的文本框,並自動顯示第二個標籤。

現在,我的問題是:我能夠填充文本框,但可以切換到第二個選項卡。

我AngularJs代碼:

$scope.EditFieldForceTask = function (TaskData) {   
    $scope.TaskEditMode = true; 
    $scope.TaskContactName = TaskData.CONTACT_NAME; 
    $scope.TaskContactNumber = TaskData.CONTACT_NUMBER; 
    $('#aAddTask').click(); 
    //$scope.tab2Click(); 
} 

在調用此$('#aAddTask').click();,我越來越喜歡

Error: [$rootScope:inprog] http://errors.angularjs.org/1.4.8/$rootScope/inprog?p0=%24apply 
at Error (native) 

三個錯誤我也試着定義NG-click事件,一個標籤,但即使這不起作用。

但是,當我嘗試從控制檯調用功能$('#aAddTask').click();,它工作正常。

任何人都可以告訴我我正在做的錯誤嗎?

+0

我覺得你的id aAddTask在EditFieldForceTask函數裏面是不可訪問的。 – shreyansh

+0

爲什麼不能調用方法而不是模擬點擊? –

+2

爲什麼不能在EditFieldForceTask中調用addTask函數?或者嘗試在$ timeout(function(){$('#aAddTask')。click();})中調用ur代碼 – blessenm

回答

1

您正在嘗試執行一個點擊功能,該功能可能在摘要循環正在進行時觸發摘要循環。

在使用$ timeout或setTimeout執行當前摘要循環之後,您可以延遲執行點擊函數。

$timeout(function() { 
    $('#aAddTask').click(); 
});