AngularJs 位置路径更改,无需重置所有控制器

2024-05-04

我的问题的简短版本是:如何更改 URL,而不需要触发路由更改或不需要运行当前显示页面上的所有控制器?

Details:

我有一个模板,显示在<ng-view>其区域由 3 个控制器管辖。在页面的最顶部我有一个交互式地图。当您单击该区域时,它会广播一次单击,其他组件会接收该单击并显示有关该区域的数据。设置非常简单。

我想做的是允许我的用户深层链接到内容。因此,每次有人点击链接时,我都想更改可以复制并粘贴到另一个浏览器的 URL。其他一些用户只需单击链接即可看到与第一个用户看到的相同状态。

目前,我使用与此类似的代码更改位置:

  $scope.$on('mapRegionClick', function($scope, regionCode) {
    var url = generateURL(regionCode);

    $scope.currentScope.$apply(function(){
      $location.path(url);
    });});

然后,在我的路由中获取该 URL,并且地图和数据会正确显示。这样做的缺点是,每次我单击地图并且 URL 更改时,整个模板/视图都会重新生成。因为生成地图有点繁重,所以我只想触发对数据呈现控制器的更改。

是否可以?如何?

我可以在控制器之间进行一些通信并实现我的目标,但随后我将无法进行深度链接。

PS:我不想用$location.search() and reloadOnSearch=false。我的链接必须很漂亮:)


听起来你不想使用$route http://docs.angularjs.org/api/ngRoute.%24route服务。

The $route服务旨在重新加载控制器,以便导航到 URL 和刷新 URL 之间没有区别。我们通过在每次 URL 更改时完全重新加载来实现此目的。这是故意的。

听起来像你的用例,不应该使用$route, just $location http://docs.angularjs.org/api/ng.%24location and ng-include http://docs.angularjs.org/api/ng.directive%3angInclude.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJs 位置路径更改,无需重置所有控制器 的相关文章

随机推荐

  • Hadoop安装问题:

    我跟着this http www bogotobogo com Hadoop BigData hadoop Install on ubuntu single node cluster phpHadoop 安装教程 不幸的是 当我运行全部启动
  • Python:“取消导入”、“重新导入”、“重置导入”?

    我调试 在 PyCharm 中 一个脚本 我在断点处停止 然后转到调试控制台窗口 然后从那里调用导入行 如下所示 import my util1 from my utils 然后我调用 my util1 到目前为止 一切都还好 然后我更改
  • GitHub API - 语言列表

    GitHub API 中是否有一个端点可以为我提供 GitHub 上所有语言的列表 我正在寻找与 github com 网站上 趋势 部分中的语言下拉列表类似的结果 不是直接来自 GitHub API The OP敏捷王牌 https st
  • Java 中非 ASCII 字符的 URL 解码

    我正在尝试用 Java 解码包含 编码字符的 URL 我尝试使用 java net URI 类来完成这项工作 但它并不总是正常工作 String test https fr wikipedia org wiki Fondation Alli
  • 媒体查询在 VueJS 样式标签中不起作用

    我正在尝试在 VueJS 组件的样式标签中使用 media media 中的样式始终有效 而不是使用宽度规则
  • 如何使用va_start()?

    在具有可变参数的函数中 我们使用函数 va start 初始化 va list ap 类型的对象 如下所示 void va start va list ap parmN 我不明白1 什么类型的对象可以作为 parMN 最后一个已知参数 传递
  • 在 CakePHP 中访问 Configuration::read 控制器

    我的 CakePHP 应用程序有一个单独的配置文件 该文件加载在 bootstrap php 中 我的问题是 如何访问控制器中的配置变量 IE 如何在控制器中执行Configure read variable 函数 谢谢 在我的自定义配置文
  • 获取 Youtube 上的游戏直播列表

    我正在尝试使用 Youtube 数据 API 来获取当前与游戏相关的直播流列表 但我找不到任何符合我需要的端点并返回每个频道的观看者数量 你们知道我该如何做到这一点吗 Thanks 游戏直播列表 videoCategoryId 20 是 游
  • 如何从 Backbone 集合中提取多个属性?

    我试图从 Backbone 集合中提取多个属性 但它返回undefined 收藏 id 1 name raju age 23 sex male hobbies id 2 name ramesh age 43 sex male hobbies
  • 使用哈希检查具有 $_POST 值的页面是否已刷新

    当将表单发布到同一个PHP页面时 正确的方法是什么来查找页面是否被意外刷新而不是再次提交 这是我现在正在使用的 tmp implode POST myHash md5 tmp if isset SESSION myHash SESSION
  • 输入字段如 stackOverflow 标签输入字段

    我将 primefaces 与 JSF 一起使用 我需要一个输入组件 允许用户在单个输入字段中提交最多 5 个标签 就像 stackOverflow 上的标签输入字段一样 还必须有一个建议标签的功能 当用户开始输入时 因为它在这里可用 我无
  • 仅当元素未分配类时,如何才能选择该元素?

    我正在修改现有 WordPress 主题的 CSS 主题有很多特殊样式的列表 附在 li 元素 正因为如此 有一个通用的list style none规则适用于 li li 元素 我想更新 CSS 以重新设置list style默认开启 l
  • 2010 年的 java 并发修改异常灾难

    绘制一些存储在 ArrayList 中的粒子 这段代码工作正常 super paintComponent g for Particle b particleArr g setColor b getColor g fillOval b get
  • python - lxml:强制执行属性的特定顺序

    我有一个 XML 编写脚本 可以为特定的第 3 方工具输出 XML 我使用原始 XML 作为模板来确保构建所有正确的元素 但最终的 XML 看起来与原始的不同 我以相同的顺序编写属性 但 lxml 按自己的顺序编写它们 我不确定 但我怀疑第
  • $(this) 和 this 有什么区别?

    有人可以解释一下 它们之间有什么区别吗 例如我可以用 that 来做到这一点 var bar button click function if bar this alert same bar this 并且不能使用 that var bar
  • 在 Netlogo 中将函数作为参数传递

    在许多其他编程语言中 您可以将一个函数作为参数传递给另一个函数并从该函数内调用它 无论如何 在 Netlogo 中可以做到这一点吗 比如下面这样 x y z are all ints to report f x y z report x y
  • 在 Python 中计算时间(datetime.timedelta?)

    我相信这对很多人来说都是理所当然的事情 但我发现自己对整个 datetime timedelta 事情感到非常困惑 本质上我在开始时给一些东西加上时间戳startTime然后我为流程结束添加时间戳endTime我试图找出 HH MM SS
  • 制作一个未知大小的数组 C# [重复]

    这个问题在这里已经有答案了 可能的重复 C 中未知长度的数组 https stackoverflow com questions 599369 array of an unknown length in c sharp 我想创建一个程序 用
  • 如何更改 UIImage 的颜色? [复制]

    这个问题在这里已经有答案了 我不想改变图像的背景颜色 而是改变整个图像的颜色 但问题是 我只能改变backgroundColor 接受的答案是正确的 但还有更多easy way for UIImageView Obj C UIImage i
  • AngularJs 位置路径更改,无需重置所有控制器

    我的问题的简短版本是 如何更改 URL 而不需要触发路由更改或不需要运行当前显示页面上的所有控制器 Details 我有一个模板 显示在