我使用ui-router-extras来支持模态窗口的并行状态。当一个模态窗口打开时," home"状态变为非活动状态,但在后台仍然可见。这允许我为每个模态窗口建立深层链接。
然而,我很难找到一个好方法来设置"默认"非活动状态到" home"如果用户通过模态窗口链接。
我目前定义了这样的州:
$stateProvider
.state('signup', {
url: '/signup',
onEnter: function($modal) {
$modal.open({
templateUrl: 'singup.html',
size: 'large',
controller: 'SignUpController'
});
}
})
答案 0 :(得分:0)
您只发布了一个州定义! 我试着做同样的工作,最后想出来了。如果你找到了解决方案,你可以发布吗?如果没有,请提供更多详细信息
也许我的解决方案会有所帮助
angular.module('xbmcremoteApp')
.config(function ($stateProvider,$stickyStateProvider) {
$stickyStateProvider.enableDebug(true);
$stateProvider
.state('movies', {
abstract: true,
url: '/movies',
templateUrl: 'app/movies/movies.html',
controller: 'MoviesCtrl'
}).state('movies.gallery', {
url: '',
templateUrl: 'app/movies/movies-gallery/movies-gallery.html',
controller: 'MoviesGalleryCtrl',
sticky:true
}).state('movies.gallery.details', {
url: '/:id',
onEnter: ['$stateParams', '$state', '$modal', '$resource', function ($stateParams, $previousState, $modal, $resource) {
$modal.open({
templateUrl: 'app/movies/movies-gallery/myModalContent.html',
resolve: {
id: function () {
$stateParams.id
}
},
size:'lg',
controller: 'ModalInstanceCtrl'
}).result.then(function () {
return $previousState.go("movies.gallery");
});
}]
});
});
答案 1 :(得分:0)
查看ui-router-extras发布0.0.12及以上版本。我在DSR中添加了对默认子状态的支持。有关详细信息,请参阅此github问题:
https://github.com/christopherthielen/ui-router-extras/issues/150
在此处阅读更新的API文档:http://christopherthielen.github.io/ui-router-extras/#/dsr
var myState = {
name: 'foo',
url: '/foo/:fooID/:barID',
template: '<div></div>,
controller: 'fooCtrl',
deepStateRedirect: {
default: { state: "foo.bar.baz.defaultSubState", params: { defaultStateParam1: "99" } }
}
}