Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic framework Ionicmodal不';直到第三次单击/轻触才打开_Ionic Framework_Ionic - Fatal编程技术网

Ionic framework Ionicmodal不';直到第三次单击/轻触才打开

Ionic framework Ionicmodal不';直到第三次单击/轻触才打开,ionic-framework,ionic,Ionic Framework,Ionic,我已经设置了div的on-tap值,以打开页面控制器中定义的模式。div是ng repeat部分的一部分。模态函数还接受由div传递给它的一些变量 当应用程序第一次在我的设备(运行iOS 7的iPhone 6)上启动时,我必须轻触div三次,模式才会打开。之后,当我点击时,它会一直打开。但是当应用程序第一次启动时,我必须轻触div 3次 控制台中根本没有错误。一旦模态打开,它就会按预期工作 有什么建议吗 代码如下: HTML 我尝试从模板URL($scope.modaltempl,位中拉出$sc

我已经设置了
div的
on-tap
值,以打开页面控制器中定义的模式。
div
ng repeat
部分的一部分。模态函数还接受由
div
传递给它的一些变量

当应用程序第一次在我的设备(运行iOS 7的iPhone 6)上启动时,我必须轻触div三次,模式才会打开。之后,当我点击时,它会一直打开。但是当应用程序第一次启动时,我必须轻触div 3次

控制台中根本没有错误。一旦模态打开,它就会按预期工作

有什么建议吗

代码如下:

HTML

我尝试从模板URL($scope.modaltempl,
位中拉出
$scope.doModal
之外的
$ionicModal.fromTemplateUrl,
位,并从
$scope.doModal
内调用
$scope.modal.show
,但结果相同

它肯定会进入
scope.modal.show();
语句,即使在模态没有打开的情况下也是如此,因为我刚刚在它得到输出之后就包含了
console.log

在我将svg添加到界面之前,我正在使用
按钮
元素对此进行测试,并且有相同的问题。当我使用
ng click
而不是点击
时,它也有相同的问题


感谢您的帮助!

事实证明问题不在爱奥尼亚控制器代码或触发html中,而是在模式模板本身

根据Ionic文档,我将我的每个模态模板包装在以下文件中:

通过删除它并用
替换它,问题得到了解决,modals现在可以在第一次单击时很好地打开

  <div on-tap="doModal('{{embed.ID}}','reply','{{embed.oembed}}','{{embed.user}}');">
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 75 72" width="100" height="50">
      <path d="imagestuffhere"/>
      </svg>
   </div>
$scope.doModal = function(this_ID,modaltype,this_oembed,this_user) {    
  $scope.contact = {
    name:   this_ID,
    info:   modaltype,
    oembed: this_oembed,
    user:   this_user
  }

  if (modaltype == 'repost') {
    $scope.modaltempl = 'templates/repost-modal.html';
  }
  else if (modaltype == 'reply') {
    $scope.modaltempl = 'templates/reply-modal.html';
  }
  else if (modaltype == 'like') {
    $scope.modaltempl = 'templates/like-modal.html';
  }
  else {
    $scope.modaltempl = 'templates/like-modal.html';
  }

  $ionicModal.fromTemplateUrl($scope.modaltempl, {
    scope: $scope,
    animation: 'slide-in-up'
  }).then(function (modal) {
    $scope.modal = modal;
    $scope.modal.show();
    console.log($scope.modaltempl);
  });
};    

  $scope.closeModal = function() {
    $scope.modal.hide();
  };

  $scope.$on('$destroy', function() {
    $scope.modal.remove();
  });