通过开放模态函数Angular uibModal传递数据

Jus*_*ian 14 javascript modal-dialog angularjs angularjs-scope angular-ui-bootstrap

我试图弄清楚弹出时如何unit_number进入模态.我对Angular很新,我对什么resolve:和group:正在做什么以及如何在return语句中包含unit_number 有点困惑.

    $scope.openTenantModal = function (unit_number) {
  var modalInstance = $uibModal.open({
    animation: true,
    templateUrl: 'views/addtenantmodal.html',
    controller: 'AddTenantModalCtrl',
    size: 'large',
    resolve: {
      group: function () {
        return $scope.group;
      }
    }
  });
  modalInstance.result.then(function () {
  }, function () {
  });
};
Run Code Online (Sandbox Code Playgroud)

Wal*_*way 32

你正在使用ui-bootstrap,

用纯AngularJS编写的Bootstrap组件

将变量传递给您需要使用的模态控制器

resolve: {
   A: function() {
       return 'myVal'
   }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以通过注入来从模态控制器访问变量'A'

controller: ['A', function(A) {
    // now we can add the value to the scope and use it as we please...
    $scope.myVal = A;
}]
Run Code Online (Sandbox Code Playgroud)

checkout:https://angular-ui.github.io/bootstrap/#/modal

解决:

将被解析并作为本地人传递给控制器​​的成员; 它相当于路由器中的resolve属性.

和组只是一个成员(它可以是你选择的任何东西)


Pan*_*kar 5

只需在解析对象中添加一个属性,unitNumber并unit_number从中返回值。这样你就可以通过在控制器工厂函数中注入依赖来获取unit_number里面的值。AddTenantModalCtrlunitNumber

resolve: {
  group: function () {
    return $scope.group;
  },
  unitNumber: function(){
    return unit_number
  }
}
Run Code Online (Sandbox Code Playgroud)

注意:不要直接做unitNumber: unit_number,因为当你拥有它时,angular DI 系统将尝试使用名称unit_number(值)搜索依赖项,并尝试将其评估为函数。结果你会$injector在控制台中得到错误。