gpt4 book ai didi

angularjs - 使用 Angular UI Router 在另一个文件中定义 onEnter 和 onExit 回调

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

我有一个简单的应用程序,它使用具有某些状态的 Angular UI Router。

实际上我的路由器中有这样的代码:

$stateProvider.state('map.layers', {
url: '/layers',
templateUrl: 'views/layers.html',
controller: 'LayersCtrl',
onEnter: function(map: Master.Map) {
// do stuff
},

onExit: function(map: Master.Map) {
// do stuff
}
});

Controller 是在另一个文件中定义的,我正在寻找一种在同一个文件中定义 onEnter 和 onExit 回调的好方法。

在您看来,最好的解决方案是什么?全局变量应该可以工作,但它不是很漂亮。

最佳答案

你可以这样做,但它不知道更多,这是一种代码味道。您在 Controller 和状态之间混合逻辑,但它们应该是分开的。

无论如何,您可以这样做:

在您的 Controller 中,注入(inject) $state对象并使用 $state.get方法:

.controller('layersCtrl', function($state) {
$state.get('map.layers').onEnter = blah;
$state.get('map.layers').onExit = blahblah;
});

但与其如此,我建议您将此共享功能提取到服务中。如果您发现很难做到这一点,那么我会深入研究您的代码,因为模块之间似乎存在太多耦合。

关于angularjs - 使用 Angular UI Router 在另一个文件中定义 onEnter 和 onExit 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052982/

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