1)我的html表单/视图下面有锚标记,点击后将我带到一个状态
<a class="btn btn-default" ui-sref="custom.email.send">
2)但是从2条不同的路线调用相同的形式
3)因此我想动态设置ui-sref的值以指向调用它的状态的父状态!
例如,如果从状态“custom.email.send”调用上述表单,则ui-sref应指向“custom.email”
答案 0 :(得分:1)
http://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$state
$rootScope.linkHistoryBack = '/';
$rootScope.$on('$stateChangeSuccess', function(event, to, toParams, from, fromParams) {
$rootScope.linkHistoryBack = $state.href(from, fromParams, {
absolute: true
});
});
<a ng-href="{{$root.linkHistoryBack}}">Go Back</a>
或者,建立一个指令:
angular
.module('uiSrefUtils', ['ui.router'])
.directive('uiSrefBack', function uiSrefBackDirectiveFactory($state) {
return function(iScope, iElement, iAttributes) {
iElement.attr('href', '/');
$rootScope.$on('$stateChangeSuccess', function(e, to, toP, from, fromP) {
var link = $state.href(from, fromP, {
absolute: true
});
return iElement.attr('href', link);
});
};
})
;
// use in your app
angular.module('myApp', ['ui.router', 'uiSrefUtils']);
<a ui-sref-back>Return</a>
答案 1 :(得分:0)
您可以创建状态更改侦听器以全局侦听状态更改
$rootScope.$on('$stateChangeSuccess', function(event, to, toParams, from, fromParams) {
$rootScope.previousState = from;
});
然后,您可以使用$rootScope.previousState.name
访问以前的州名称,并将其用作绑定值