这是我目前的代码:
家长控制器
vm.animationsEnabled = true;
vm.open = function (size) {
var modalInstance = $uibModal.open({
animation: vm.animationsEnabled,
templateUrl: 'app/entities/interview-stage/interview-stage-list-add-dialog.html',
controller: 'InterviewStageListAddDialogController',
controllerAs: 'vm',
size: 'cs',
});
modalInstance.result.then(function (selectedItem) {
vm.interviewPlanSetUp.push(selectedItem);
}, function () {
//$log.info('Modal dismissed at: ' + new Date());
});
};

模态控制器
没有什么重大事项:我正在选择一个值并将结果传回父控制器
function save () {
vm.selectedStage.rounds=vm.selectedRound;
$uibModalInstance.close(vm.selectedStage);
$scope.$emit('gorecruitApp:interviewStageUpdate', 'test');
}

这很好。
然而,当我尝试通过UI -Router尝试这样做时,我无法访问" Parent Scope"
我正在做以下
.state('interview-stage.addStage',{
parent:'job-setup.new',
url:'/addStage',
data:{
authorities: ['ROLE_USER']
},
onEnter:['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) {
$uibModal.open({
templateUrl: 'app/entities/interview-stage/interview-stage-list-add-dialog.html',
controller: 'InterviewStageListAddDialogController',
controllerAs: 'modal',
scope: $scope,
backdrop: 'static',
size: 'cs',
resolve: {
// entity: ['InterviewStage', function(InterviewStage) {
// return InterviewStage.get({id : $stateParams.id}).$promise;
// }]
}
}).result.then(function() {
$state.go('job-setup.new', null, { reload: 'job-setup.new' });
}, function() {
$state.go('^');
});
}]
})

父控制器是附加到 job-setup.new 的控制器,它是 interviewstage.addStage
的父级我尝试了一些建议。到目前为止没有任何工作。有什么指针吗?
编辑:这是一个掠夺者:https://plnkr.co/edit/HJT1f1C23s2HQ2jTcy9p?p=preview
此处从模态返回的数据应显示在" partial-home.html"
中答案 0 :(得分:0)
最简单的方法是将数据作为状态参数从模态状态传递回父状态,因此您可以设置父状态,如:
state('job-setup.new',{
url:'/new',
params: { item: null },
...
然后当您将所选项目作为close方法的参数传递出模态时,您可以将params对象中的数据设置为返回父状态:
.result.then(function modalClosed(selectedItem) {
$state.go('home', { item: selectedItem }, { reload: true });
}, function modalDismissed() {
$state.go('^');
});
Here is a functioning fork of the plunker you provided
其他一些事情:我将你使用的ui-router的版本从0.2.something提升到0.3.1 - 而1.0.0版本还有更多值得探索的功能。而且我认为你误解了reload
上的$state
方法。当您在reload
的选项块中传递$state.go(stateName, params, options)
属性时,就像对模态关闭事件一样,reload
的值应为true或false。如果您正在调用$state.reload(stateName)
,那么您可以将状态名称作为字符串传递。 See the docs for more details。