ui-router modal window with parent state
ui-router modal window with parent state
有很多关于在进入特定状态时打开模式 windows 的文档,有些人使用 'onEnter',其他人使用 '$stateChangeStart' 事件。
但我遇到的问题是,当直接转到 url 时,模态 window.
下没有加载任何内容
例如:
1. 用户前往 www.mysite.com
2. 用户点击打开模型的link:www.mysite.com/#/signup
3. 用户看到注册模式window,下面是原始内容
但是当用户直接进入 www.mysite.com/#/signup 时,这不会发生。
目前我有一个父路由来处理我所有的模态 windows,如下所示:
$stateProvider
.state('modal', {
parent: 'home',
abstract: true,
url: '',
data: {
modal: true
},
onEnter: ['$state', '$modal', function($state, $modal) {
console.log('open modal');
$modal.open({
template: '<div ui-view="modal"></div>',
backdrop: true
}).result.then(function() {
$state.go('home');
}, function(reason) {
if(!reason || reason == 'backdrop click') $state.go('home');
});
}]
});
虽然这可行,但我希望能够动态设置父路由,因为这将是我模态下方的内容 window。
有什么办法吗?或者是否有任何其他方法可以让我打开模式 window 以及下面的任何内容?
使用UI-Router Extra
- Sticky States
帮助我解决了我的问题,有几个问题直接打开模态时没有底层状态,但这些都是可以解决的问题。
http://christopherthielen.github.io/ui-router-extras/#/sticky
有很多关于在进入特定状态时打开模式 windows 的文档,有些人使用 'onEnter',其他人使用 '$stateChangeStart' 事件。
但我遇到的问题是,当直接转到 url 时,模态 window.
下没有加载任何内容例如: 1. 用户前往 www.mysite.com 2. 用户点击打开模型的link:www.mysite.com/#/signup 3. 用户看到注册模式window,下面是原始内容
但是当用户直接进入 www.mysite.com/#/signup 时,这不会发生。
目前我有一个父路由来处理我所有的模态 windows,如下所示:
$stateProvider
.state('modal', {
parent: 'home',
abstract: true,
url: '',
data: {
modal: true
},
onEnter: ['$state', '$modal', function($state, $modal) {
console.log('open modal');
$modal.open({
template: '<div ui-view="modal"></div>',
backdrop: true
}).result.then(function() {
$state.go('home');
}, function(reason) {
if(!reason || reason == 'backdrop click') $state.go('home');
});
}]
});
虽然这可行,但我希望能够动态设置父路由,因为这将是我模态下方的内容 window。
有什么办法吗?或者是否有任何其他方法可以让我打开模式 window 以及下面的任何内容?
使用UI-Router Extra
- Sticky States
帮助我解决了我的问题,有几个问题直接打开模态时没有底层状态,但这些都是可以解决的问题。
http://christopherthielen.github.io/ui-router-extras/#/sticky