AngularJs - 无法调用标记的单击JavaScript单击功能

时间:2016-01-07 04:58:08

标签: javascript jquery html angularjs twitter-bootstrap

我有两个引导标签,我在第一个标签上显示列表,第二个标签上会有用于添加新记录的文本框。

<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();时,它工作正常。

任何人都可以告诉我我正在做的错误吗?

1 个答案:

答案 0 :(得分:1)

您正在尝试执行点击功能,该功能可能在摘要周期正在进行时触发摘要周期。

使用$ timeout或setTimeout执行当前摘要周期后,您可以延迟执行点击功能。

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