当前位置: 首页 > 面试题库 >

ui-router $ stateParams与$ state.params

沙宣
2023-03-14
问题内容

使用ui- router,可以将其中一个$state$stateParams一个注入到控制器中以访问URL中的参数。但是,$stateParams仅通过访问参数会公开属于访问它的控制器管理的状态的参数及其父状态,而$state.params具有所有参数,包括处于任何子状态的参数。

给定以下代码,如果我们直接加载URL http://path/1/paramA/paramB,则这是控制器加载时的样子:

$stateProvider.state('a', {
     url: 'path/:id/:anotherParam/',
     controller: 'ACtrl',
  });

$stateProvider.state('a.b', {
     url: '/:yetAnotherParam',
     controller: 'ABCtrl',
  });

module.controller('ACtrl', function($stateParams, $state) {
   $state.params; // has id, anotherParam, and yetAnotherParam
   $stateParams;  // has id and anotherParam
}

module.controller('ABCtrl', function($stateParams, $state) {
   $state.params; // has id, anotherParam, and yetAnotherParam
   $stateParams;  // has id, anotherParam, and yetAnotherParam
}

问题是,为什么会有区别?是否有关于何时何地应使用或避免使用它们的最佳实践指南?


问题答案:

该文档在这里重申了您的发现:https : //github.com/angular-ui/ui-router/wiki/URL-
Routing#stateparams-service

如果我的记忆力$stateParams得到了保证,它的推出要晚于原来的$state.params,并且似乎是避免连续写入的简单辅助注入器$state.params

我怀疑是否有最佳实践准则,但是上下文对我而言是成功的。如果您只想访问URL中收到的参数,请使用$stateParams。如果您想了解有关状态本身的更复杂信息,请使用$state



 类似资料:
  • 问题内容: 似乎无法正常工作。通过日期是这样的: 在目标状态上忽略参数 码: 现场示例可以在 这里 找到 谢谢。 问题答案: 您不能在状态之间传递任意参数,您需要将它们定义为定义的一部分。例如 上面的代码将输出定义了contactId属性的对象。如果你去,你会的。 有关更多信息,请参见UI-Router URL路由的文档。

  • 问题内容: 新的react-router语法使用该组件在路由周围移动。但是,如何将其与? 就我而言,我将标签用作主要的导航系统,因此从理论上讲,我应该具有以下内容: 但是在渲染时,material-ui会引发一个错误,该错误的子级必须是组件。可能的方式是什么?如何管理标签的道具? 提前致谢 问题答案: 我的老师帮助我使用了React Router 4.0的withRouter来包装Tabs组件,以

  • 问题内容: 我知道它已经被讨论过很多次了,大多数文章都引用了以下代码:AngularJS中带有自定义URL的模态窗口 但是我就是不明白。我根本看不出来。我还发现这个jsfiddle实际上很棒,非常有帮助,除了它不添加url并允许我使用后退按钮关闭模式。 编辑:这是我需要帮助。 因此,让我尝试解释我要实现的目标。 我有一个添加新项目的表格,并且有一个“添加新项目”链接。我想当我单击“添加新项目”时,

  • 问题内容: 我已切换到ui-router。除一件事外,一切进展顺利。在我的页面上,我有一个选择可以更改应用程序的上下文。无论如何,以前,当更改此上下文时,我正在执行以下代码(特别是 set 方法): 和 在做最重要的事情。它重新加载了页面。但是切换到ui-router后,$ route.reload不会执行任何操作。另外,我在ui-router API中找不到对应的内容。如何解决这个问题? 问题答

  • 问题内容: SPA是Angular的绝妙之处,但是如果我需要其他与​​index.html不相关的页面怎么办,具有不同ui视图的UI-Router状态又如何实现呢? 例如,我有 index.html : app.js : 现在,我需要与index.html完全不同的 login.html (不需要索引的页眉,页脚,侧边栏),但是config stateProvider仅查找index.html u

  • 本文向大家介绍angular-ui-router 页码参数,包括了angular-ui-router 页码参数的使用技巧和注意事项,需要的朋友参考一下 示例 类似于,int但仅接受正整数(当有page参数时,可用于分页。 定义: 并使用: 柱塞和相关的答案。