AngularJS ui-router中$state.go是否支持传递可选参数?
关于AngularJS ui-router跳转edit状态的参数传递问题
当然可以这么做!你的用法完全正确😉
你的edit状态URL已经明确定义了id这个路径参数,以及connected、ifIni、redirectToRun这些查询参数(就是URL中?后面的部分),而$state.go()方法的第二个参数就是用来传递状态所需的路径参数和查询参数的完美载体。
你写的这段代码:
$state.go('edit', { id: id, connected: connected, ifIni: ifIni, redirectToRun: redirectToRun })
完全符合ui-router的使用规范,执行后会正确跳转到类似/edit/123?connected=true&ifIni=0&redirectToRun=/some/path这样的URL(具体参数值取决于你传入的变量内容)。
这里还有几个小细节可以注意:
- 如果某个参数的值是
null或者undefined,ui-router会自动忽略这个参数,不会把它追加到URL中; - 参数值可以是字符串、数字等基本类型,都会被正确序列化到URL里;
- 如果需要强制刷新状态或者控制跳转行为,还可以添加第三个配置参数,比如
$state.go('edit', {...}, { reload: true }),不过这属于进阶用法啦。
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

