gpt4 book ai didi

angularjs - 访问 Angular-UI-Router 的 onExit 范围?

转载 作者:行者123 更新时间:2023-12-04 11:03:25 25 4
gpt4 key购买 nike

我正在寻找以下可能性:

$stateProvider.state('user', angularAMD.route({
url: '/user/:id',
templateUrl: 'views/user.html',
controllerUrl: 'views/user',
controller: 'UserCtrl',
onExit: function () {
alert ("exit user");
// call scope function saveCurrentStateData();

}
}));

保存当前状态数据() 通过在后端定义的 REST-Service 存储一些范围数据(例如 $scope.my.data )。

编辑:你能给我一个没有 $scope.$on ('destroy',..的解决方案吗?也许与 解决 ui路由器的属性?为什么我不能使用 onExit ,为什么会在这里?

最佳答案

您可以收听$destroy $scope你的 Controller 的事件

var UserCtrl = function ($scope) {
$scope.$on('$destroy', function() {
// Do your cleanup here or call a function that does
});
};

有关何时在 ui-router 上实例化和销毁 Controller 的一些引用,请参阅 this question

编辑 1:如果你想访问你的 $state 参数,你可以收听 $stateChangeStart$stateChangeSuccess事件并做这样的事情
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState,fromParams) {
if(fromState.name == 'yourstate'){
// Here is your param
console.log(fromParams.stateid);
}
});

编辑 2:无法使用的原因 onExit是因为在调用该方法时,状态已经改变。然而,这在下一个主要版本 (1.0) 中通过添加一个名为 $transition$ 的可注入(inject)服务来修复。这将提供对状态参数的访问,您可以阅读更多关于 here

关于angularjs - 访问 Angular-UI-Router 的 onExit 范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35016084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com