从javascript将数据传递给bootstrap模式

时间:2015-07-18 14:54:42

标签: jquery angularjs bootstrap-modal

我的项目基于角度和简化,点击按钮时会显示一个模态弹出窗口。现在我需要将数据从javascript传递给模态体。

我知道使用按钮进行内联编码传递数据,但不是场景。我需要它从js文件传递的内容。

内容不是ajax调用。只需将文本从controllerjs传递给modal。

以下是JSFIDDLE

    var myApp = angular.module("popupApp",[]);
myApp.controller("myController",function($scope){
    $scope.popup = function(){
        angular.element("#myModal").modal({
                                show:true,
                                contentForModalBody:"I am from the controller"    
                                    });
    }

    angular.element('#myModal').on('show.bs.modal', function (event) {
        console.log(event);
        console.log("I am initiated");
        //How do i get contentForModalBody here?
    });
});

2 个答案:

答案 0 :(得分:0)

您需要做的就是在控制器端使用$ modal服务,在模态控制器端使用$ modalInstance。 '解析'部分是你所需要的 - 它可以通过一些数据传递到模态。

以下是一个例子:

var modalInstance = $modal.open({
  templateUrl: 'some/modal.html',
  controller: 'ModalInstanceCtrl',
  size: 'lg',
  resolve: {
    item: function () {
      return "Something you want to pass in";
    }
  }
});

// Here the part when you access data after closing the modal (clicking either Ok or Cancel).
modalInstance.result.then(function (item) {
  $scope.confirm(item);

}, function (item) {
  $scope.reject(item);
});

ModalInstanceController(通过从控制器中的解析部分注入' item'来捕获数据):

controller('ModalInstanceCtrl', function ($scope, $modalInstance, item) {

  $scope.item = item;
  //example implementation of 'Ok' button.
  $scope.ok = function () {
$modalInstance.close($scope.item);
 };

  // example implementation of Cancel button.
  $scope.cancel = function () {
$modalInstance.dismiss('cancel');
  };
});

当然

 templateUrl: 'some/modal.html'

它是你的模态html文件的路径。

答案 1 :(得分:0)

有一种方法可以内联传递内容,但在您的情况下,您不希望内联传递数据。以this代码为例。首先,您需要使用角度方式将数据传递给模态,然后您可以从任何地方获取数据。在这种情况下,您的控制器功能将如下所示。

$scope.popup = function(){
        angular.element(document.querySelector("#myModal .modal-body")).html("Content for the modal body");
        angular.element(document.querySelector("#myModal")).modal({
                    show:true,
         });
    }

您可以从任何javasript或控制器变量传递模态内容。您只需要替换变量中的内容。像

$scope.modalContent = "Content for the modal body"; 
angular.element(document.querySelector("#myModal .modal-body")).html($scope.modalContent);
相关问题