【发布时间】:2016-11-17 15:10:08
【问题描述】:
我正在尝试将对象传递给角材质对话框内的组件。
我用来显示Dialog的函数是:
ctrl.openCampaignSplitDialog = function(ev, split){
$mdDialog.show({
template: '<campaign-split-dialog split="$ctrl.split"></campaign-split-dialog>',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose:true,
fullscreen: $scope.customFullscreen // Only for -xs, -sm breakpoints.
}).then(function(split) {
ctrl.addCampaignSplit(split);
}, function() {
$scope.status = 'You cancelled the dialog.';
});
};
这会正确打开对话框。
这是组件的代码:
angular
.module('app')
.component('campaignSplitDialog', {
templateUrl: 'app/components/campaignSplitDialog/campaignSplitDialog.html',
controller: campaignSplitDialogCntrlr,
bindings:{
split: '<'
}
});
/** @ngInject */
function campaignSplitDialogCntrlr($mdDialog) {
var ctrl = this;
console.log('splitter', ctrl.split);
}
问题源于我不确定如何将split 对象从打开的对话框函数传递到组件模块。在“模板”URL 中有split="$ctrl.split"。我尝试了多种不同的方法,但都没有奏效。我尝试过双括号、纯变量名和使用 controllerAs 语法。
我也尝试使用locals:{} 参数通过对话框传递值,但因为我没有指定控制器,因为它是在调用组件时配置的,所以它不会出现在组件中。
【问题讨论】:
标签: javascript angularjs web-applications angular-material