角度,改变视图而不破坏原始视图

时间:2014-01-21 17:42:36

标签: angularjs angular-routing

我正在使用ui.router状态提供程序来交换视图。 我希望能够将原始视图保留在切换到下一个视图之前所处的确切状态,因为很可能用户会经常在视图之间来回切换。 根据文档(https://github.com/angular-ui/ui-router/wiki),视图在切换状态时被破坏。 有没有办法覆盖默认行为和以某种方式查看的“缓存”。 我甚至不在乎我是否只需要“隐藏”原始视图,并将其保留在dom中。 我想我只是在寻找最佳实践来实现这一目标。

谢谢你! 我的代码的一个粗略示例如下:

$stateProvider
        .state('view1', {
            url: '/view1',
            views: {
                'View1': {
                    templateUrl: 'views/view1.html',
                    controller: 'Ctr1'
                }
            },
            data: {
                tab: 'tabname'
            }
        });

    $stateProvider
        .state('view2', {
            url: '/view2',
            views: {
                'View2': {
                    templateUrl: 'views/view2.html',
                    controller: 'Ctr2'
                }
            },
            data: {
                tab: 'tabname'
            }
        });

2 个答案:

答案 0 :(得分:0)

我不知道有什么方法可以做到这一点。

但是,您可以在服务/工厂中维护控制器的状态,并在导航回同一视图时重新加载控制器状态。

答案 1 :(得分:0)

在你的情况下,你想要在采取行动后交换视图(可能是点击按钮等)?也许你可以利用一个模型,你可以用它来编译你的视图一次和每次交换发生时。我有一些类似的情况我必须处理并能够做到这一点:Angularjs how to toggle/replace/revert dom element in a row on button click

希望这会有所帮助。