[英]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.