AngularJS如何为Bootstrap模式创建可重用的模板

时间:2014-09-05 14:30:43

标签: javascript angularjs angular-ui-bootstrap

所以我使用的是AngularJS Bootstrap模式(http://angular-ui.github.io/bootstrap/)。哪个工作正常,但我想知道我是否可以创建一个可以接收标题和内容的基本模板。

然后它将使用这些信息填充我的模板。该模板将有一个关闭按钮,取消按钮,叠加等。有一个简单的方法来做这个AngularJS?

这是从例子中得到的,它是关于我所拥有的。我的内容在templateUrl中。传递模态模板会很好,所以我不必为我创建的每个模态重新创建标题和关闭按钮。

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

2 个答案:

答案 0 :(得分:13)

找到了一种方法来执行指令。它打开了一个带有模板的自定义指令的模态。然后,您的模态中的任何内容都将插入到自定义模板中。这很好,因为它不仅仅包含一条消息。它可以填充表格,警报或任何你想要的东西。

这是我的指示:

  app.directive('modalDialog', function() {
    return {
      restrict: 'E',
      replace: true,
      transclude: true,
      link: function(scope) {
        scope.cancel = function() {
          scope.$dismiss('cancel');
        };
      },
      template:
        "<div>" +
          "<div class='modal-header'>" +
            "<h3 ng-bind='dialogTitle'></h3>" +
            "<div ng-click='cancel()'>X</div>" +
          "</div>" +
          "<div class='modal-body' ng-transclude></div>" +
        "</div>"
    };
  });

模态('yourTemplate.html'):

<modal-dialog>
  <div> Your body/message </div>
</modal-dialog>

使用Javascript:

app.controller('YourController', ['$scope', '$modal', function($scope, $modal) {
  $scope.openModal = function () {
    $modal.open({
      templateUrl: 'yourTemplate.html',
      controller: ModalController
    });
  };
}]);

var ModalController = function ($scope, $modalInstance) {
  $scope.dialogTitle = 'Your title';
};

答案 1 :(得分:3)

结帐John Papa的Hot Towel Angular BootStrap“模板”。你可以从那里拿起它:

https://github.com/johnpapa/HotTowel-Angular/blob/master/NuGet/HotTowel-NG/app/common/bootstrap/bootstrap.dialog.js