2

我正在使用 Angular 1.X 框架,但在使用组件时遇到了问题。

我想在对话框或面板中使用组件。但是我遇到的问题是我无法从对话框控制器中获取组件中需要的值。我试图绕过对话控制器,但这也不起作用。

这是我在控制器中的一个功能:

ctrl.addAdjustments = function (event) {
        $mdDialog.show({
            template: '<add-adjustments-dialog close="$ctrl.close"></add-adjustments-dialog>',
            controller: function ($mdDialog) {
                var ctrl = this;

                ctrl.close = function (adjustment) {
                    $mdDialog.hide(adjustment);
                }
            },
            parent: angular.element(document.body),
            targetEvent: event,
            clickOutsideToClose: true
        })
            .then(function (adjustment) {
                console.log('adjustment', adjustment);
            });
    };

如您所见,我在有效的模板参数中使用了组件 html 标记。我在对话框控制器中创建了一个函数表达式,然后尝试将变量绑定到组件。

这是我的组件控制器:

  angular.module('app')
    .component('addAdjustmentsDialog', {
        templateUrl: 'app/components/addAdjustmentsDialog/addAdjustmentsDialog.html',
        controller: addAdjustmentsDialogCntrlr,
        bindings: {
            close: '<'
        }
    });

/** @ngInject */
function addAdjustmentsDialogCntrlr() {
    var ctrl = this;

    ctrl.adjustment = {
        weight: 0,
        amount: 0,
        type: '',
        regions: []
    };

    console.log('close fnction', ctrl.b);

    ctrl.addAdjustment = function(){
        ctrl.close();
    }


}

在这里,我试图获取绑定并使用它来发送回一个值。问题是我最初发送的关闭变量是undefined.

任何帮助将不胜感激,谢谢!

4

0 回答 0