javascript - 将参数传递到 $ionicModal

标签 javascript angularjs ionic-framework

将参数传递到 $ionicModal 的最佳方法是什么?以便可以在模态中使用这些值(即 receipt.html)。

confirm.html

<a 
  class="button button-stable" 
   style="border-radius:0px" 
   ng-click="openReceiptModal(selectedBusinessNoCategory.id, selectedDummyService.id)">
   View Receipt
</a>

controller.js

  $ionicModal.fromTemplateUrl('templates/receipt.html', {
    scope: $scope,
    animation: 'slide-in-up'
  }).then(function(modal) {
    $scope.receiptModal = modal;
  })

  $scope.openReceiptModal = function() {
    $scope.receiptModal.show()
  }

  $scope.closeReceiptModal = function() {
    $scope.receiptModal.hide();
  };

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

receipt.html

<ion-content>
    <div class="list">
        <div class="item item-input-inset">
            <div class="row">
                <div class="col"><p style="small">To</p></div>
                <div class="col col-50"><p style="small">{name}</div>
            </div>
        </div>
        <div class="item item-input-inset">
            <div class="row">
                <div class="col"><p style="small">For</p></div>
                <div class="col col-50"><p style="small">{{selectedBusiness.title}}</div>
            </div>
        </div>
        <div class="item item-input-inset">
            <div class="row">
                <div class="col"><p style="small">Appointment Date</p></div>
                <div class="col col-50"><p style="small">{{selectedBusiness.date}}</div>
            </div>
        </div>
        <div class="item item-input-inset">
            <div class="row">
                <div class="col"><p style="small">Confirmation</p></div>
                <div class="col col-50"><p style="small">{{selectedBusiness.confirmation}}</div>
            </div>
        </div>
        <div class="item item-input-inset">
            <div class="row">
                <div class="col"><p style="small">Method</p></div>
                <div class="col col-50"><p style="small">{{selectedBusiness.method}}</div>
            </div>
        </div>
        <div class="item item-input-inset">
            <div class="row">
                <div class="col"><p style="small">Amount</p></div>
                <div class="col col-50"><p style="small">&pound;{{selectedService.price}}</div>
            </div>
        </div>
        <div class="item item-input-inset">
            <div class="row">
                <div class="col"><p style="small">Cancellation Fee</p></div>
                <div class="col col-50"><p style="small">&pound;{{selectedService.price}}</div>
            </div>
        </div>
    </div>
</ion-content>

最佳答案

当您在 $ionicModal.fromTemplateUrl() 定义中指定 scope: $scope 时,模式会继承父范围。

因此您可以将 $scope.openReceiptModal() 的参数传递给 Controller ​​ $scope:

  $scope.openReceiptModal = function(_selectedBusinessNoCategory, _selectedDummyService) {
    $scope.selectedBusinessNoCategory = _selectedBusinessNoCategory;
    $scope.selectedDummyService = _selectedDummyService;
    $scope.receiptModal.show()
  }

此时,selectedBusinessNoCategoryselectedDummyService 由模态范围继承(与父 Controller 范围一起),您可以在模态模板中使用它们。

这是一个示例:http://codepen.io/beaver71/pen/ZQwwgb

关于javascript - 将参数传递到 $ionicModal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35387149/

相关文章:

javascript - 使用 ng-pattern 验证纬度和经度值

javascript - 无法将 token 传递给 AngularJS 中的表单

javascript - ion-slides 如何在 ionic 1.2.4 上工作(或者它是否适用于 1.2.4?)

ionic-framework - 使用 Capacitor 在浏览器中运行 native 插件

javascript - 每当一个 div 的一部分与另一个 div 的一部分重叠时触发一个事件

javascript - 在企业应用程序框架中包含 js/css 文件的最佳做法是什么?

javascript - 在行中放置可变长度的 div

javascript - 具有平滑更新动画的 d3 线图

javascript - AngularJS中登录成功后才重定向到页面并隐藏菜单

css - 如何从 ionic 卡中删除 "padding"