【发布时间】:2014-02-17 12:35:14
【问题描述】:
FAQ for ui-router 有一个关于与 bootstrap $modals 集成的部分,但它没有提到任何关于抽象视图的内容。我在一个抽象视图下有 3 个视图,所以类似于以下内容。
$stateProvider
.state('setup', {
url: '/setup',
templateUrl: 'initialSetup.html',
controller: 'InitialSetupCtrl',
'abstract': true
})
// markup for the static view is
<div class="wizard">
<div ui-view></div>
</div>
.state('setup.stepOne', {
url: '/stepOne',
controller: 'SetupStepOneCtrl',
onEnter: function($stateParams, $state, $modal) {
$modal.open{
backdrop: 'static',
templateUrl: 'setup.stepOne.html',
controller: 'SetupStepOneCtrl'
})
}
})
.state('setup.stepTwo', {
url: '/stepTwo',
controller: 'SetupStepTwoCtrl',
onEnter: function($stateParams, $state, $modal) {
$modal.open({
backdrop: 'static',
templateUrl: 'setup.stepTwo.html',
controller: 'SetupStepTwoCtrl'
})
}
})
.state('setup.stepThree', {
url: '/stepThree',
templateUrl: 'setup.stepThree.html',
controller: 'SetupStepThreeCtrl'
...
});
}]);
我还尝试仅将 onEnter 块添加到抽象状态,并从 3 个子状态中的每一个中删除 onEnter。在我看来,这实际上是正确的方法。抽象状态初始化并打开 $modal 并且后续状态应该插入到 中,但是当我尝试这样做时,ui-view 容器是空的。
我可以想到一些其他的破解方法来解决这个问题,但我想我想看看是否有处理这个问题的规范方法。
【问题讨论】:
-
嗨,我也在尝试做同样的事情,你解决了吗
-
这里也一样,我也有同样的问题。有什么解决办法吗?
-
不,我从来没有让它工作,对不起。
-
我正在做这件事。到目前为止,我有来自常见问题解答的示例。
-
使用
ngInclude、stateChangeStart让它工作。基本上我在状态变化时动态注入模板
标签: angularjs twitter-bootstrap dialog modal-dialog angular-ui-router