使用$ uibmodal和ui-router的模态具有自己的状态

时间:2019-09-11 00:00:55

标签: javascript angularjs angular-ui-router state

我希望有一个模态模仿我通过uirouter从一个页面移动到另一页面的一组页面的功能,但是我想在模态中做到这一点。

基本上,我想让ui-router易于在模态视图之间导航而不更改路线。

现在,如果我启动一个模态然后有一个链接,它将关闭模态。我已经尝试在页面上嵌套路线,并且可以正常工作,但是每次点击路线时,我都必须在“ onEnter”中启动模式。

我尝试用抽象创建父路由,并且不会用新路由更新ui-view(它也会关闭模式)。

ui-router是否可以在angularjs的状态或“页面”之间移动?

到目前为止我有

.state('group.iqp.modal', {
            abstract: true,
            fullscreen: true,
            notify: false,   
            onEnter(modalService, $stateParams) {
                  //selectLibraryItem
            // route will activate modal
            }
        })
        .state('group.iqp.modal.globalOrganisations', {
            fullscreen: true,
            // location: false,
            // notify: false,
            reload: true,
            parent: 'group.iqp.modal',
            // views: {
            //     "modal@": {
            //         // templateUrl: "app/global/views/modal/organisations-list.tpl.html",
            //         templateUrl: 'app/global/pages/organisations/organisations-list.tpl.html',
            //         controller: 'GlobalOrganisationListController',
            //         controllerAs: 'vm'
            //     },
            // },

            onEnter($stateParams, modalService, $state) {
                console.log('reached organisation')
                const options = {
                    templateUrl: 'app/global/views/modal/organisations-list.tpl.html',
                    // templateUrl: 'app/global/pages/organisations/organisations-list.tpl.html',
                    controller: 'GlobalOrganisationListController',
                    controllerAs: 'vm',
                    scope: $stateParams.scope,
                    // controller: class {
                    //     $onInit() {
                    //         console.log('opening modal')
                    //     }
                    // }
                }
                modalService.show(options).result.then(() => {
                    $state.go('^')
                })
            }
        })
        .state('group.iqp.modal.globalOrganisations.user', {
            fullscreen: true,
            // location: false,
            // reload: true,
            notify: false,
            parent: 'group.iqp.modal',
            views: {
                "modal@": {
                    templateUrl: "app/global/views/modal/user.tpl.html",
                },
            },
            onEnter($stateParams, modalService, $state) {
                console.log('reached user')
                const options = {
                    templateUrl: 'app/global/views/modal/user.tpl.html',
                    scope: $stateParams.scope,
                    controller: class {
                        $onInit() {
                            console.log('opening modal')
                        }
                    }
                }
                modalService.show(options).result.then(() => {
                    $state.go('^')
                })
            }
        })

0 个答案:

没有答案