我使用AngularJS v1.2.0-rc.2与ui-router v0.2.0。我想传递referrer状态到另一个状态,所以我使用$ state.go的toParams像这样:
$state.go('toState',{referer: $state.current.name});
根据docs,这应该填充toState控制器上的$ stateParams,但它是未定义的。我缺少什么?
我创建了一个plunk来演示:
如果要传递非网址状态,则在设置状态时不能使用网址。我发现
the answer在公关,并做一些猴子周围更好地了解。
$stateProvider.state('toState',{ templateUrl:'wokka.html',controller:'stateController',params: { 'referer': 'some default','param2': 'some default','etc': 'some default' } });
然后你可以导航到它像这样:
$state.go('toState',{ 'referer':'jimbob','param2':37,'etc':'bluebell' });
要么:
var result = { referer:'jimbob',param2:37,etc:'bluebell' }; $state.go('toState',result);
在HTML中这样:
<a ui-sref="toState(thingy)" class="list-group-item" ng-repeat="thingy in thingies">{{ thingy.referer }}</a>
这个使用案例在文档中完全揭露,但我认为这是一个强大的手段转换状态,而不使用URL。