加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 设置reloadOnSearch = false时,如何在angular-ui-r

发布时间:2020-12-17 17:24:46 所属栏目:安全 来源:网络整理
导读:我有一个页面,显示一个大表格,其中包括排序,过滤等.我“保存”参数(要排序的列,哪些过滤器适用)到URL,以便这些东西包含在浏览器历史记录中,一个人可以去返回或发送包含所有参数的其他人的链接.要在不导致重新加载的情况下操作URL,我将reloadOnSearch = false
我有一个页面,显示一个大表格,其中包括排序,过滤等.我“保存”参数(要排序的列,哪些过滤器适用)到URL,以便这些东西包含在浏览器历史记录中,一个人可以去返回或发送包含所有参数的其他人的链接.要在不导致重新加载的情况下操作URL,我将reloadOnSearch = false设置为我的ui路由器状态.

在运行良好的大部件中:我可以将链接发送给其他人,如果我按照从我的表格页面引出的链接,我可以使用浏览器的后退按钮,并使用与之前相同的设置结束相同的表格.

但是,如果我操作参数(搜索或stateParam,无关紧要),而我已经处于所需的状态…例如.单击链接或手动编辑浏览器的地址栏,这绝对没有效果.如果我使用“后退”按钮,这甚至是正确的. URL中的参数会更改,但视图不会更新.

由于stateParam的改变,我不希望发生完全重新加载,但我仍然希望得到注意.

我尝试了以下注意事项:

$scope.$watch(function() {
  return $stateParams['someStateThatMightChange'];
},function(newVal,oldVal) {
  if (newVal !== oldVal) {
    alert('Hey,I have been changed!');
  }
});

但是,如果我操纵URL以使someStateThatMightChange发生更改,则不会发生任何操作.警报未显示.观看stateParameters的正确方法是什么?

解决方法

你尝试过 – 例如?

$scope.$watch(function(){????????????return $state.params.tabId;????????},function(newParams,oldParams){????????????console.log(newParams,oldParams);????????????if(newParams!== oldParams){????????????????警告(‘嘿,我已经改变了!’);????????????}????????});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读