试图将一个局部变量传递给我的ngAside控制器

Trying to pass a local variable to my ngAside controller

本文关键字:我的 控制器 ngAside 局部变量 一个      更新时间:2023-09-26

我正在使用ngAside来显示一些数据。数据取决于用户选择的变量,因此我需要将Id传递给ngAside的控制器。

现在我的控制器是这样的:

$aside.open({
    templateUrl: 'details.html',
    placement: position,
    size: 'lg',
    backdrop: true, 
    locals: {
        mode: "create"
    },
    controller: function Ctrl($scope, $uibModalInstance, mode) {
        $scope.test = mode;
        $scope.ok = function (e) {
            $uibModalInstance.close();
            e.stopPropagation();
        };
        $scope.cancel = function (e) {
            $uibModalInstance.dismiss();
            e.stopPropagation();
        };
    }
})

我是根据我在ngMaterial上看到的内容写的。

它并没有像预期的那样工作,我得到了

Unknown provider: modeProvider <- mode

如何修复此问题并能够传递要在ngAside模板上显示的变量?

由于您想在控制器中注入"mode"变量,我猜应该使用标准的"resolve"参数。

$aside.open({
  templateUrl: 'details.html',
  placement: position,
  size: 'lg',
  backdrop: true, 
  resolve: {
    mode: function() {
      return "create";
    }
  },
  controller: function Ctrl($scope, $uibModalInstance, mode) {
    [...]
  }
});

基本上,对于未在依赖注入列表中注册的每个控制器参数,您需要提供一个函数,该函数将返回您希望注入变量中的值。

此功能:

  mode: function() {
    return "create";
  }

将被执行,其返回值将填充"mode"控制器参数。