将值作为参数从 ngDialog 传递到另一个控制器

Pass Value as parameter from ngDialog to another controller

下面是我的代码片段

$scope.openrights = function (userid) {
  $scope.valid = userid;
  ngDialog.open({
    template: 'views/rightsassignment.html',
    controller: 'RightsCtrl',
    className: 'ngdialog-theme-default ngdialog-theme-custom',
    scope: $scope
  });
};

我遇到的问题是 --- 我无法将 'valid' 作用域值传递给控制器​​ RightsCtrl。

scope:$scope 仅将值传递给作为内插值 {{valid}} 提及的 html 模板。

如何将值 'valid' 作为参数传递给 RightsCtrl 作为 $state.params.valid ?

任何帮助将不胜感激

我在 app.js 中有一个状态

  .state('companyadmin.rightsassignment', {
    url: '/rightsassignment/:valid',
    templateUrl: 'views/rightsassignment.html',
    controller: 'RightsCtrl',
    title: 'Welcome Company Admin'

  })

将参数作为查询参数传递给该状态或在 rootScope 中维护一个变量。

$rootScope.isValid = false;

相应地在您的 ngDialog 控制器中更改此值 isValid。

由于$rootScope在所有控制器中都可用,您应该可以使用它。

编辑: 我看到您的路径参数 :valid 在您所在的州。当您从模态转换到状态时,您应该将 valid valid 传递给该状态。

$state.go("companyadmin.rightsassignment", { "valid": true }

检查这个 - 您需要传递带有数据的变量 属性

$scope.valid = userid;
ngDialog.open({ template: 'templateId',
className: 'ngdialog-theme-default ngdialog-theme-custom',
data: $scope.valid,
controller: ['$scope', function($scope) {

        // controller logic

                alert($scope.valid);


    }]
    });