引用对话框控制器父级的范围

时间:2017-09-04 07:30:30

标签: angularjs

我已经创建了一个包含ng-form内部按钮的组件,当我点击此按钮时,对话框将被禁用,如下所示:

.component('colorPicker', {
            bindings: {},
            require: {
                parent: '?^form'
            },
            templateUrl: 'color-picker-component.html',
            controller: 'ColorPickerController',
            controllerAs: 'colorPickerCtrl'
    });

color-picker-component.html:

<ng-form name="{{colorPickerCtrl.formName}}">
<md-button class="md-fab md-mini md-raised" ng-click=colorPickerCtrl.showDialog()>
    <md-icon>format_color_fill</md-icon>
    <md-tooltip>Sélectionner une couleur</md-tooltip>
</md-button>
</ng-form>

ColorPickerController:

function ColorPickerController($scope, $mdDialog, $rootScope) {

        var vm          = this;
        vm.formName     = "colorPicker_Form";

        vm.hideDialog = function () {
            $mdDialog.hide();
        };

        vm.showDialog = function () {
            $mdDialog.show({
                bindToController: true,
                preserveScope: true,
                templateUrl:  'color-picker-dialog.html',
                parent: angular.element(document.body),
                controller: 'ColorPickerDialogController',
                controllerAs: 'colorPickerDGCtrl',
                locals: {
                    parentScope: vm
                }
            });
        };

    }

但是当我在parentScope内拨打ColorPickerDialogController时,我得到一个未定义的值。

那么如何在ColorPickerController

中引用ColorPickerDialogController范围

1 个答案:

答案 0 :(得分:0)

在你的dialogController中尝试这个

$scope.$parent.someProperty