【发布时间】:2014-05-25 11:45:25
【问题描述】:
我在我的 Angular UI 手风琴上使用了这个 http://plnkr.co/edit/sqXVCJ?p=preview。我已经将指令属性放在锚上(在模板中),并且我已经覆盖了模板以删除 ng-click="isOpen = !isOpen" 并将其替换为函数调用“callSubmit”。所有的手风琴都加载了视图,所有的视图也都有表单。 callSubmit 函数的目的是提交可以正常工作但我收到上述错误的表单。
我已经阅读了有关添加 $timeout 服务(不起作用)和添加安全应用方法的各种帖子,这给了我递归和摘要错误。
我不确定我还能尝试什么,该功能工作正常,但我只是不断收到该错误。
!--- button
<button type="submit" class="btn btn-default hidden" id="btnSubmit_step1" ng-click="submitForm()">Trigger validation</button>
!-- function
$scope.callSubmit = function() {
document.getElementById('btnSubmit_step1').click();
};
编辑:我一直从控制器触发按钮单击的原因是表单方法在另一个范围和不同的控制器中。
因此,如果我使用来自 rootScope 的广泛广播,如下所示。我将广播事件毫无问题地发送到另一个控制器。接收广播的控制器在其范围内具有表单,但是当我尝试执行该功能时,我什么也没得到,根本没有表单提交。
$$scope.callSubmit = function() {
//document.getElementById('btnSubmit_step1').click();
$rootScope.$broadcast('someEvent', [1,2,3]);
};
$scope.$on('someEvent', function(event, mass) {
$scope.submitForm();
});
【问题讨论】:
-
为什么要点击按钮而不是调用按钮点击的角度函数?
标签: angularjs angularjs-directive angular-ui