尝试将局部变量传递给我的ngAside控制器

时间:2016-05-09 14:21:00

标签: javascript angularjs

我正在使用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 here上所看到的内容。

虽然没有按预期工作,但我得到了

Unknown provider: modeProvider <- mode

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

1 个答案:

答案 0 :(得分:0)

由于你想在控制器中注入“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”控制器参数。