Angular UI Router - 允许任何查询字符串参数

2024-02-17

我正在使用 Angular UI Router,这在大多数情况下都运行良好。但是,我遇到了一种情况,我事先不知道查询字符串参数的名称。

因此,通常使用 UI 路由器,您会定义如下所示的路由:

$stateProvider.state('test', {
	url: '/test?testQueryStringParam',
	templateUrl: 'Test.html',
	controller: 'TestController'
});

然后在我的控制器中,我可以使用 $stateParams 访问 testQueryStringParam。

但是,使用 UI 路由器,您无法访问路由定义中未指定的任何查询字符串参数。

Angular 框架附带的路由器确实允许您执行此操作。所以我尝试将 $location 服务与我的 UI 路由器定义一起使用。这确实有用。

当我想添加查询字符串参数时,我使用:

$location.search("paramName", "paramValue");

当我想获取查询字符串值时,我只需使用:

$location.search()

这会更新 URL,但不会重新实例化控制器(就像 $state.go($state.current, {}, {reload: true}) 那样)。这似乎不是一个大问题,因为我可以自己重新加载数据。但是,如果您在浏览器中使用后退按钮,它会再次更改 URL,但不会重新实例化控制器。

到底有没有

  1. 我可以只使用 UI Router 让它工作吗?

  2. 获取使用 $location 实际重新实例化控制器的解决方法。?

作为最后的手段,我还尝试直接更新 window.location,但这会刷新整个页面,这是不可接受的。

Thanks


可以传递不出现在URL中的非url参数

$stateProvider.state('test', {
    url: '/test?testQueryStringParam',
    params: {
    optParam: null,
    },
    templateUrl: 'Test.html',
    controller: 'TestController'
});

如你看到的,optParam是一个可选参数,默认值为 null,并且在 URL 中不可见

您可以使用控制器中的访问此参数$stateParams

$stateParams.optParam

这是一个有帮助的blog http://benfoster.io/blog/ui-router-optional-parameters

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

Angular UI Router - 允许任何查询字符串参数 的相关文章

  • Angular ui-router,html5模式总是刷新到/

    我正在尝试在角度中使用 html5mode 以便我可以为 http myhost products 之类的页面添加书签 其中 products 是由 stateProviderRef state xxx 定义的路由 为此我已经 added
  • 如何使用 angular_devise 保留全局当前用户直到注销?

    如何创建自己的全局可访问的服务 该服务将通过以下方式调用服务器currentUser 仅在页面加载时一次 如果用户已登录 则保留它并向控制器或状态提供数据 直到注销 现在我在许多状态或控制器中多次解析currentUser 我在文档中找到
  • Angular UI 路由器忽略 HTML5 模式关闭

    Angular UI Router 忽略 HTML5Mode false 并且它以无法添加书签或直接登陆的方式呈现链接 app js stateProvider state search url search views main wrap
  • 如何在 angularjs ui-router 中的状态之间共享 $scope 数据?

    如果不使用服务或在父控制器中构造观察者 如何让子状态访问主控制器的状态 scope state main controller mainController url main templateUrl main init html state
  • 防止在嵌套 ui-sref 时调用父级

    假设我有嵌套 DOM 每个 DOM 都有ui sref对于不同的angular ui router状态 我想点击outer仅提醒外部并单击inner只提醒内心 目前如果我点击inner 它会提醒外部和内部状态 HTML
  • 使用 ui 路由器实例化作用域和控制器

    我对控制器何时实例化感到困惑 另外 在嵌套状态时控制器如何实例化 我可能会感到困惑范围如何附加到视图和控制器 也就是说 如果每个视图都有自己的控制器和范围 或者它们共享相同的范围 有人可以解释一下控制器何时被实例化吗 在嵌套路由下 所有视图
  • Angular $state.go {reload: true} 不应重新初始化抽象父控制器

    我正在使用 ui route 进行导航 我有一个叫做父亲的国家main 这是一个abstract状态 网址 main 和子状态products and users urls 主要产品 and 主 用户 app config statePro
  • Angular-UI 路由器:嵌套视图不起作用

    构建多步骤表单 向导 原来是在关注本教程 https scotch io tutorials angularjs multi step form using ui router 效果很好 但我现在正在尝试对其进行调整 以便将第一步嵌入到主页
  • ui-router:没有视图模板的路由

    是否可以设置路线ui router只有一个控制器 目的是在某个 URL 处 我唯一想做的是以编程方式执行操作 而不是在视图中显示任何内容 我已经阅读了文档 但我不确定他们是否提供了一种方法来做到这一点 是的 我读过这个 https gith
  • 当 $state.go 调用 $stateChangeStart 时,Angular 1.4.1 UI Router 10 $digest() 迭代

    我有一个需要授权的状态 我听 stateChangeStart事件并且如果toState data protected并且用户没有被授权我打电话e preventDefault and state go login 当我在根 URL 中打开
  • 在 Angular 中使用多个模块有什么好处?

    我是 Angular Js 的熟悉者 最近我发现在一些项目中 在主模块中创建并组装了多个 Angular 模块 代码看起来像 angular module main main sub1 main sub2 main sub2 angular
  • 基于导航历史而不是路线路径的角度面包屑

    有没有办法实现基于导航历史记录的面包屑而不是基于正常路线路径的面包屑 例子 路线 主页 HChild1 HChild1 1 首页 HChild2 HChild2 1 如果用户从主页导航到 HChild2 1 面包屑应该是 首页 HChild
  • 从状态提供者的解析方法更改角度应用程序的状态

    我在我的角度应用程序中使用 ui router 目前我有两条路线 signin 和 user 最初 当用户单击登录按钮时 它显示 signin 我发送 ajax 请求并获取用户 ID 我将用户 ID 存储在 localstorage 中并将
  • 使用 Angular ui-router 基于状态参数加载控制器

    我正在尝试加载基于状态参数的控制器以使其可重用 state dashboard item detail url detailId detailId detailName detailName views main templateUrl f
  • 如何使用 ui-router 获取带有参数的先前状态

    问题陈述 我有一个 添加评论 按钮 只有当我登录系统时我才应该能够添加评论 但问题是我登录后无法返回 添加评论 页面 因为我不知道之前的状态或无法获取之前的状态 有没有更清洁的解决方案 我应该将登录页面设置为模态页面而不是新页面吗 我已经看
  • AngularJS 中的重定向状态

    这是状态配置 angular module grabhutApp config function stateProvider urlRouterProvider stateProvider ACCOUNT state account abs
  • ui-sref 和变量状态参数名称

    我想呈现一个链接 例如 a 其中州名myState和钥匙myKey是变量 有办法做到这一点吗 我发现自己处于同样的情况 我也无法完成这一点 尝试使用 ng click 移动代码 并在 ng click 函数内部使用 stage go htt
  • 停止 Angular-ui-router 导航,直到承诺得到解决

    我想防止发生 Rails 设计超时时发生的一些闪烁 但 Angular 直到资源出现下一个授权错误时才知道 发生的情况是模板被渲染 一些ajax调用资源发生 然后我们被重定向到rails设备进行登录 我宁愿在每次状态更改时对 Rails 执
  • Ui-sref 不生成可点击的链接/不工作

    我之前使用 ng route 来实现此目的 它工作得很好 但使用 UI Router 时 链接不再可单击 或者至少在大多数情况下不可单击 当它们出现时 这是非常随机的 它们不会显示我正在使用的 html 模板 HTML
  • 在 Angular ui-router 中更改状态而不更改浏览器历史记录

    假设我们有这样的逻辑 从状态A改变到状态B 每当我们到达状态 B 时 应用程序总是通过调用将我们重定向到状态 C state go stateC 现在我们处于状态C 我的问题是如何从状态 C 返回状态 A 考虑到状态 A 可以是我们在运行时

随机推荐

  • 结构内变量声明语句中的冒号运算符[重复]

    这个问题在这里已经有答案了 可能的重复 无符号温度 3 是什么意思 https stackoverflow com questions 2950029 what does unsigned temp3 means struct sample
  • 使用javascript重定向到html页面

    我有2个html页面 第一个是登录页面 第二个是登录时重定向到主页 必须在加载时执行 只有在登录后第一次加载页面时必须调用此方法 当我重新加载或刷新时 会再次调用此方法 1 can i refresh the page without ca
  • 在 ReactJs 中替换悬停时的元素

    在这段代码中 div class wrapper div class icon i i div div 每当用户将鼠标悬停在 图标 div 上时 此代码 i i 应该用这个替换 p Lorem ipsum p 我能够实现改变样式 但不知道如
  • 如何获得 ListView GridViewColumn 来填充网格中的剩余空间?

    我想创建一个 ListView 它有两列固定宽度和第三列来填充剩余空间 所以像这样
  • 如何使用 django 仅渲染 html 的一部分和数据

    我正在使用 ajax 对来自搜索结果的数据进行排序 现在我想知道是否可以只渲染 html 的一部分 以便我可以这样加载 result html nbsp load sort sortid sortid 我正在这样做 但我得到了整个 html
  • 将 printf 移动到不同的行会产生不同的输出? (C)

    在 C 中 当我移动此 printf 行时 printf f n 5 2 对于不同的线路 其输出会发生变化 有任何想法吗 代码如下 include
  • 如何将 apoc.load.csv 与 apoc.create.node 结合使用

    我需要导入 CSV 文件并从每条记录创建一个节点 我使用 APOC 是因为我可以在创建节点时使用 CSV 文件中的列来定义每个节点类型 这不起作用 CALL apoc load csv FILE C Temp Test Test Neo4j
  • 对于 Ajax 请求,省略 p:selectOneMenu 的验证

    我有一个 Jsf 页面 其中包含一个片段
  • winform应用主窗体

    我正在使用 asp net 和 C 开发一个应用程序 它使得使用母版页概念进行开发变得非常容易 现在我正在尝试开发一个Windows窗体应用程序 我真的需要在这里也有一个母版页 有没有诸如主表格之类的东西 谢谢 要在 winform 中模拟
  • 如何在textview中设置unicode以在android中显示表情符号?

    我从服务器获取一些 json 字符串格式的 Unicode 字符串 表情符号图标 我的问题很奇怪 过去两天我一直在努力解决这个问题 当我解析 json 并将所有 Unicode 字符串存储在ArrayList
  • 求树的最大深度

    我知道如何找到二叉树的深度 但我不能概括它适用于任何树 有人可以概述一下用于查找树 不一定是二叉树 深度的伪代码吗 int findDepthOfTree tree int deepest 0 for child of root node
  • 我使用的是哪个版本的 Objective-C?

    我如何知道什么版本Objective C我在用着 我正在使用带有 xCode 的 Mac 我之所以问这个问题是因为我有一本书 Objective C 3 0 并且它说你可以像这样声明一个多维数组 int num 新 int 2 2 当我尝试
  • jquery scrollpane ms ajax updatepanel 回发后不起作用

    我收到了一个网站的新设计 设计者在设计中使用了jquery 我正在将设计实现到 ASP NET Ajax 应用程序中 但我遇到了一个问题 我有一个带有更新面板和菜单的页面 单击菜单项时 用户控件将动态加载到更新面板上的占位符中 这使得页面没
  • MVC 站点地图提供程序和本地化

    今天我发现 对于我的网站 我可以使用从 Github 下载的适用于 MVC3 的 SiteMap 提供程序 因为我的 Web 应用程序是 MVC3 情况如下 我的申请是多语言的 我有一个单独的图书馆 其中包含所有资源 然后这个库被添加到我当
  • 重命名 ASP.NET Core Razor Pages 中的页面/共享目录

    我正在使用 ASP NET Core 5 Razor 页面 通用模板进去Pages Shared 但我需要将其重命名为Pages Foo 如何指示运行时查找文件Pages Foo 我认为这是可能的Startup ConfigureServi
  • OpenShift 上的 WebSocket 不适用于远程客户端

    我有一个无法解决的问题 我使用 socket io 或 WebSockets Node js 库在 openshift 卡带上实现了 Node js WebSockets 服务器 对于其中任何一个 结果都是相同的 使用在同一 openshi
  • 函数和子程序有什么区别?

    函数和子程序有什么区别 有人告诉我函数和子程序之间的区别如下 函数接受参数 在本地工作 不会改变任何值或使用其范围之外的任何值 高内聚 它还返回一些值 子例程直接使用调用者或调用它的代码段的值 并且不返回值 低内聚性 即将某些代码分支到其他
  • 如何在 whoosh 中使用 n 元语法

    我正在尝试使用 n grams 来使用 Whoosh 进行 自动完成式 搜索 不幸的是我有点困惑 我做了一个这样的索引 if not os path exists index os mkdir index ix create in inde
  • 如何使用 Nuxt Auth 模块在 Vuex 中重新获取用户?

    简短的问题 是否可以通过 Nuxt Auth 模块手动更新 Vuex 中的用户数据 为什么我有这个问题 我的问题是这样的 我在用户文档中的 MongoDB 中保存了一些点赞 关注 我的认证是用Nuxt Auth实现的 Nuxt Auth 在
  • Angular UI Router - 允许任何查询字符串参数

    我正在使用 Angular UI Router 这在大多数情况下都运行良好 但是 我遇到了一种情况 我事先不知道查询字符串参数的名称 因此 通常使用 UI 路由器 您会定义如下所示的路由 stateProvider state test u