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

时间:2016-07-11 15:48:43

标签: javascript angularjs angularjs-scope modal-dialog angular-ui-bootstrap

我正在试图弄清楚当弹出时如何将unit_number传递给模态。我对Angular很新,我对resolve:group:正在做的事情以及如何在返回语句中包含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 () {
  });
};

2 个答案:

答案 0 :(得分:27)

您正在使用ui-bootstrap,

  

用纯AngularJS编写的Bootstrap组件

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

resolve: {
   A: function() {
       return 'myVal'
   }
}

然后您就可以访问该变量' A'从模态的控制器中注入它

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

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

解决:

  

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

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

答案 1 :(得分:4)

只需在解析对象unitNumber中添加一个属性,其中一个函数返回unit_number值。这样您就可以通过在控制器工厂函数中注入unit_number依赖项来获取AddTenantModalCtrl unitNumber内的resolve: { group: function () { return $scope.group; }, unitNumber: function(){ return unit_number } } 值。

unitNumber: unit_number
  

注意:不要直接执行unit_number,因为当你拥有它时,角度DI系统会尝试搜索依赖关系   名称为$injector(值)的它将尝试将其评估为   功能。结果,您将在控制台中收到 select case when description like '%university%' and description like '%history%' then 2 when description like '%university%' then 1 when description like '%history%' then 1 else 0 end as rank 错误。