我正在做一个Angular应用程序,其中表的行各有一个按钮,点击这些按钮时,应该为按钮所在的行打开一个新选项卡.
我需要将参数传递到以这种方式创建的新选项卡中.我在状态初始化中声明了参数:
.state('viewlisting',{ url: "/listings/:id",params: { 'action': '',},controller: 'ListingsController',templateUrl: "partials/listings/view_listing.html" });
按钮有这样的东西:
ui-sref='viewlisting({id:"+data+",action:"images"})'
传递参数,一切都按预期工作.
//URL: /#/listings/42 $state.params.action //returns "images" $state.params.id //returns "42"
但是将target =“_ blank”添加到< a> tag导致$state.params对象返回以下内容:
//URL: /#/listings/42 $state.params.action //returns "" $state.params.id //returns "42"
我已经搜索了几个小时,我已经查看了ui-router文档和问题跟踪器,以找到解决我情况的问题,但我什么也没找到.
状态参数是否未通过目标=’_ blank”ed ui-sref链接传递?
如果有任何参数应该在当前SPA上下文之外可用(新窗口,新选项卡) – 它必须是URL的一部分.
这将有效:
.state('viewlisting',{ // instead of this // url: "/listings/:id",// this will keep the action in a new window url: "/listings/:id?action",templateUrl: "partials/listings/view_listing.html" });
关于params How to pass parameters using ui-sref in ui-router to controller的更多细节