离子触发点击事件不起作用

Ionic trigger click event does not work

我的 Ionic 应用程序中有一个模态,当显示模态时,我想在特定元素上触发点击事件。

Controller
$scope.$on('modal.shown', function() {
      document.getElementById('somemodal').click(); // #1
      $( "#somemodal" ).triggerHandler( "click" );  // #2
});


Index.html
<h1 class="title" id="somemodal" ng-click="start()">info</h1>

#1 和#2 都不会触发 ng-click 触发 function start in another controller.

如有任何建议或建议,我们将不胜感激。

谢谢。

你应该试试这个:

<label class="item">
    <div class="button button-block button-positive" ng-click="start()">info</div>
</label>

在你的控制器中:

$scope.start = function() 
{

}

如果两个控制器都在同一层,使用像这样的工厂:

(function() {
    'use strict';

    angular
        .module('yourapp')
        .factory('yourfactory', yourfactory);

    yourfactory.$inject = [$rootScope];

    /* @ngInject */
    function yourfactory($rootScope) {
        var service = {
            start: start
        };
        return service;

        function start() {
            $rootScope.$broadcast('dostart', {});
        }
     }
})();

然后在控制器 1 中(使用模态):

$scope.$on('modal.shown', function() {
      yourfactory.start(); // Don't forget to inject yourfactory
});

在控制器 2 中:

$scope.$on('dostart', function(event, args) {
    $scope.start();
});

如果两个控制器不在同一层级,也可以在没有工厂的情况下从第一个控制器直接 $broadcast$emit,具体取决于控制器的层次结构

我可以通过以下操作做到这一点。

Controller
$scope.$on('modal.shown', function() {
      $rootScope.start();
});

Another Controller
$rootScope.start= function () {
      some code ...
}

您可以使用离子模型

$ionicModal.fromTemplateUrl('yourmodelhtml.html', {
      scope: $scope
    }).then(function(modal) {
      $scope.confirm = modal;
    });

然后调用此 $scope.confirm 以打开点击事件。