使用ui-router我想设置一个URL参数,无论我处于什么状态。用例是在可收藏的界面模式之间切换(例如“无聊”或“有趣”)。
我知道可以使用ng-click
指令完成,但是在这种情况下,我会使用href-less锚点,这不是很有用。
我尝试过最明显的ui-sref=".({foo:'bar'})"
,但它失败了“没有为路径指定参考点。'”
ui-router是否有本机解决方案来执行此操作?理想情况下,我希望有类似的东西:
<a ui-sref="currentState({interface:'boring'})">boring</a>
<a ui-sref="currentState({interface:'fun'})">fun</a>
答案 0 :(得分:11)
似乎此功能在ui-router的尚未发布的主分支中可用:
<a ui-sref="{foo:'bar'}">foobar</a>
答案 1 :(得分:5)
暂时你可以在控制器或应用程序中执行类似的操作,因为我喜欢这样做,因此它可以在任何地方使用(每个视图):
appModule.run(function($rootScope, $state, $stateParams) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
$rootScope.$on('$stateChangeSuccess', function(ev, to, toParams, from) {
$rootScope.previousState = from.name;
$rootScope.currentState = to.name;
});
});
然后应该可以使用:
<a ui-sref="{{currentState}}({interface:'boring'})">boring</a>
答案 2 :(得分:2)