我正在使用带有$ modal的ui-router,我的设置在我的路由页面中是这样的:
.state('resourcesControl.resource.dataStuff', {
url: "/:resourceId/dataStuff",
onEnter: ['$stateParams', '$state', '$modal', '$timeout', 'resourceService', function($stateParams, $state, $modal, $timeout, resourceService){
var modalInst = $modal.open({
templateUrl: "templates/dataStuff.html",
windowClass: 'data-modal',
controller: 'dataStuffCtrl'
});
modalInst.result.then(function(){
}, function(){
$state.go('resourcesControl.resource');
});
}]
})
我对UI路由器的理解是所有子状态都可以访问其父控制器和范围变量。从理论上讲,我的dataStuffCtrl应该可以访问资源和resourcesControl控制器及其范围。
但是,当我在dataStuff视图中的父作用域项周围包装大括号时,不会呈现任何内容。有没有解决的办法?我记得看到其他人发布了有关$ modal的父控制器,但我无法在SO atm找到它们。
答案 0 :(得分:1)
问题是$ modal服务将元素添加到文档的末尾。因此它不在您的范围层次结构中,而只是$ rootScope的子项。你有几个选择。
$scope.$new()
手动创建子范围)。