繁体   English   中英

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

[英]Ionic trigger click event does not work

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

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() {
    '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', {});
        }
     }
})();

然后在Controller 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 ...
}

你应该试试这个:

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

在你的控制器中:

$scope.start = function() 
{

}

您可以使用离子模型

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

然后调用$ scope.confirm来打开click事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM