UI路由器:将参数传递给ui-view

时间:2016-02-16 11:55:26

标签: javascript angularjs angular-ui-router

UI Router管理AngularJS应用程序的状态,并支持嵌套视图以及同一状态的多个命名视图。 多个命名视图使用如下:

<body>
  <div ui-view="viewA"></div>
  <div ui-view="viewB"></div>
</body>

您还可以通过ui-sref在状态之间导航时将网址参数传递到状态(请查看此问题:Angular ui-router - how to access parameters in nested, named view, passed from the parent template?)。

问:是否可以使用ui-view将参数传递到命名视图,然后传播到相应状态?

问:如果我使用$state.go(newState)切换状态,如何传递参数?

$state.go(newState, { Param: 123 });

1 个答案:

答案 0 :(得分:0)

评论中建议的$state.go(newState, { Param: 123 })绝对有效。

我尝试使用另一种方法也很有效。在我定义状态的主app.js文件中,我在模块定义之外定义了一个变量var myData={};(但在JS文件中) 。可以将其视为各种各样的全局数据变量。

viewA的控制器中,您可以通过设置

来设置变量

myData.somevalue=$scope.valueFromViewA;

您可以通过

之类的内容在viewB中访问此值

$scope.valueInB=myData.somevalue

正如我所说,这是一种做法,服务是另一种方式,评论中的方法也是有效的。