如何使用angularjs进行模态处理

时间:2015-01-28 16:45:25

标签: javascript angularjs angular-ui-bootstrap

我试过这个傻瓜

http://plnkr.co/edit/s902hdUIjKJo0h6u6k0l?p=preview

 angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function  ($scope, $modalInstance, items) {

但它会出错  错误:[$ injector:unpr]未知提供者:itemsProvider< - items

我想要两个带有2个不同模态的按钮

2 个答案:

答案 0 :(得分:1)

有很多语法错误: 更新了plunker http://plnkr.co/edit/vgM5PLyVgluOeikGvVSA?p=preview

JS中所做的更改: -

angular.module('ui.bootstrap.demo', ['ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('ModalDemoCtrl', function ($scope, $modal, $log) {

  $scope.items = ['item1', 'item2', 'item3'];

  $scope.open = function (size) {

    var modalInstance = $modal.open({
      templateUrl: 'myModalContent.html',
      controller: 'ModalInstanceCtrl',
      size: size,
      resolve: {
        items: function () {
          return $scope.items;
        }
      }
    });

    modalInstance.result.then(function (selectedItem) {
      $scope.selected = selectedItem;
    }, function () {
      $log.info('Modal dismissed at: ' + new Date());
    });
  };
});



angular.module('ui.bootstrap.demo').controller('ModalDemoCtrl2', function ($scope, $modal, $log) {

  $scope.items2 = ['item12', 'item22', 'item32'];

  $scope.open = function (size) {

    var modalInstance2 = $modal.open({
      templateUrl: 'myModalContent2.html',
      controller: 'ModalInstanceCtrl2',
      size: size,
      resolve: {
        items2: function () {
          return $scope.items2;
        }
      }
    });

    modalInstance2.result.then(function (selectedItem) {
      $scope.selected = selectedItem;
    }, function () {
      $log.info('Modal dismissed at: ' + new Date());
    });
  };
});

// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.

angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function ($scope, $modalInstance, items) {

  $scope.items = items;
  $scope.selected = {
    item: $scope.items[0]
  };

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

  $scope.cancel = function () {
    $modalInstance.dismiss('cancel');
  };
});
angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl2', function ($scope, $modalInstance, items2) {

  $scope.items2 = items2;
  $scope.selected = {
    item: $scope.items2[0]
  };

  $scope.ok = function () {
    $modalInstance.close($scope.selected.item2);
  };

  $scope.cancel = function () {
    $modalInstance.dismiss('cancel');
  };
});

答案 1 :(得分:1)

您可以尝试我的Angular Dialog Service,它基于ui.bootstrap的模态,但提供预制模式,用于错误,通知,进程,确认和自定义对话框。它允许您使用' dialogsProvider'在应用程序的配置功能中设置配置。因此,您不必每次都设置键盘和背景设置。还支持使用angular-translate和fontAwesome。

您可以在此处找到它:https://github.com/m-e-conroy/angular-dialog-service 或者在bower.io上。