ui-router-extras的默认非活动状态

时间:2014-08-28 07:30:47

标签: angularjs angular-ui-router

我使用ui-router-extras来支持模态窗口的并行状态。当一个模态窗口打开时," home"状态变为非活动状态,但在后台仍然可见。这允许我为每个模态窗口建立深层链接。

然而,我很难找到一个好方法来设置"默认"非活动状态到" home"如果用户通过模态窗口链接。

我目前定义了这样的州:

$stateProvider
.state('signup', {
    url: '/signup',
    onEnter: function($modal) {
        $modal.open({
            templateUrl: 'singup.html',
            size: 'large',
            controller: 'SignUpController'
        });
    }
})

2 个答案:

答案 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" } }
    }
}