我正在使用 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
.
任何帮助将不胜感激,谢谢!