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

时间:2016-05-11 07:29:16

标签: angularjs ng-dialog

以下是我的代码段

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

我遇到的问题是---我无法将'有效'范围值传递给控制器​​RightsCtrl。

范围:$ 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'

  })

2 个答案:

答案 0 :(得分:0)

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

$rootScope.isValid = false;

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

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

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

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

答案 1 :(得分:0)

选中此项 - 您需要传递具有数据属性的变量

$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);


    }]
    });