2017-04-25 68 views
1

我正在开发一个带有angularjs的SPA。如果应用程序中有两个页面,请将它设为A和B.目前我在页面A,并且已经在页面上执行了一些操作(如过滤,搜索等),然后导航到页面B并再次回到页面A.但是,当我回来时,在页面A上完成的所有操作应该保持不变(所有的过滤器,搜索操作应该持续下去,如何可能)?如何在angularjs中保存视图

+0

取决于“其他页面”的含义。请提供更多更具体的细节。请参阅[问] ...和... [mcve] – charlietfl

+0

定义“完成的操作”...您是否在讨论提取该视图上显示的数据?你是否在谈论像复选框或选择一样保存用户体验状态?这是一个非常广泛的问题,任何人都可以在当前状态下回答 – jusopi

+0

我想你可以将范围数据保存在localstorage中,并且在加载该页面时检查该值是否在localstorage中并将其加载到范围。 –

回答

0

也许你可以做的是保存你需要的路线参数去创建一个状态,像这样的价值观:

.state(state1, { 
    url: '/state1', 
    params: {'paramters': null}, 
    controller: 'controller', 
    }) 

然后,您可以用它在你的控制器,以恢复您的视图不管它是什么从之前是这样的:$stateParams.paramters

要保存“当前视图”,你也可以告诉角到默认情况下不缓存您的看法:

 .state(state1, { 
     url: '/state1', 
     params: {'paramters': null}, 
     cache: false, 
     controller: 'controller', 
     }) 

这将麦e Angular每次都会重新运行您的控制器代码。

我希望这是有用的。

+0

应该提到,答案假设op使用ui路由器。请注意,缓存不会存储模型状态 – charlietfl

+0

这是真的。但是这个概念是一样的 – MatTaNg

+0

不仅价值观,但我想要完全相同的页面与所有以前的操作。 –

相关问题