【问题标题】:Passing data through open modal function Angular uibModal通过开放的模态函数Angular uibModal传递数据
【发布时间】:2016-11-13 15:35:19
【问题描述】:

我试图弄清楚如何在弹出模式时将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 () {
  });
};

【问题讨论】:

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


    【解决方案1】:

    你正在使用 ui-bootstrap

    用纯 AngularJS 编写的引导组件

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

    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 属性。

    组只是一个成员(可以是您选择的任何内容)

    【讨论】:

    • 感谢您的详细解释。进行了一些调整,因为我们的控制器设置与标准略有不同,但可以正常工作。我们的构建中有很多模式,因此这将非常有助于向前发展。
    • 忘记注入是我的问题!
    【解决方案2】:

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

    resolve: {
      group: function () {
        return $scope.group;
      },
      unitNumber: function(){
        return unit_number
      }
    }
    

    注意:不要直接做unitNumber: unit_number,因为当你这样做时,Angular DI 系统会尝试搜索依赖项 名称为unit_number(value),它会尝试将其评估为 功能。结果您将在控制台中收到$injector 错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-26
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 2011-05-06
      相关资源
      最近更新 更多