将值从md对话框传递到组件

时间:2017-01-26 21:50:25

标签: javascript angularjs components material-design mddialog

我正在使用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

任何帮助都会感激不尽,谢谢!

0 个答案:

没有答案