Ionicmodal在第三次点击/点击之前无法打开

时间:2016-01-03 17:47:20

标签: ionic-framework ionic

我已设置on-tap的{​​{1}}值以打开在页面控制器中定义的模态。 divdiv部分的一部分。模态函数还接受ng-repeat传递给它的一些变量。

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

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

有什么建议吗?

以下是代码:

HTML

div

CONTROLLER

  <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(); }); 位移到$ionicModal.fromTemplateUrl($scope.modaltempl,之外并从$scope.doModal内调用$scope.modal.show,但结果是相同的。

即使模态没有打开,它肯定会进入$scope.doModal语句,因为scope.modal.show();我刚刚输出后就包含了它。

在我将svg添加到界面之前,我使用console.log元素对此进行了测试,并遇到了同样的问题。当我使用button代替ng-click时,它也遇到了同样的问题。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

原来问题不在于Ionic控制器代码,也没有触发html,而是在模态模板本身。

根据Ionic文档,我将每个模态模板都包含在其中:

<script type="text/ng-template" id="repost-modal.html"></script>

通过删除它并仅用<ion-modal-view></ion-modal-view>替换它,问题得到了解决,现在模态在第一次点击时打开得非常好。