簡體   English   中英

如何在控制器外部聲明Angular UI Modal?

[英]How to declare Angular UI Modal outside of controller?

我想讓我的Angular Ui Modal控制器/對象在其觸發控制器(&在另一個文件中)之外聲明,而不破壞全局名稱空間。

這可能嗎? 是否可以像常規控制器一樣聲明模態控制器,並以某種方式(從我的觸發器控制器)傳入參數?

我目前有:(這不酷)

(function () {
    TriggeringCtrl.$inject = ['$scope', 'htmlClient', 'apiCall', '$timeout', '$modal', 'utility'];
    function TriggeringCtrl($scope, htmlClient, apiCall, $timeout, $modal, utility) {

   };
  app.controller('TriggeringCtrl', TriggeringCtrl);
  var ModalCtrl = function ($scope, $modalInstance, node, apiCall, utility) {
  }
});

您在這里有一個不全局的示例: http : //plnkr.co/edit/fCfvcnwP9JSHbX5L2Vuu?p=preview

var app = angular.module('plunker', ['ui.bootstrap']);
app.controller('ModalDemoCtrl', function ($scope, $modal, $q, $timeout) {


  $scope.open = function () {
    var modalInstance = $modal.open({
      templateUrl: 'myModalContent.html',
      controller: function ($scope, $modalInstance, items) {

        $scope.items = items;


        $scope.ok = function () {
          $modalInstance.close('item');
        };

        $scope.cancel = function () {
          $modalInstance.dismiss('cancel');
        };
      },
      resolve: {
        items: function () {
          var p = $q.defer(); /// simulate data
          $timeout(function(){
            p.resolve(['item1', 'item2', 'item3']);
          });
          return p.promise.then(function(data){
            return data;
          });
        }
      }
    });
  };

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM