angularjs – 使用Angular UI路由器在另一个文件中定义onEnter和
发布时间:2020-12-17 07:11:40 所属栏目:安全 来源:网络整理
导读:我有一个简单的应用程序使用Angular UI路由器与一些状态. 其实我的路由器中有这种代码: $stateProvider.state('map.layers',{ url: '/layers',templateUrl: 'views/layers.html',controller: 'LayersCtrl',onEnter: function(map: Master.Map) { // do stuf
我有一个简单的应用程序使用Angular UI路由器与一些状态.
其实我的路由器中有这种代码: $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 } }); 控制器在另一个文件中定义,我正在寻找一种在同一文件中定义onEnter和onExit回调的好方法. 在您看来,什么是最佳解决方案?一个全局变量应该可以工作,但它不是很漂亮. 解决方法
你可以这样做,但它不知道更多这是代码味道.您在控制器和状态之间混合逻辑,但它们应该是分开的.
无论如何,这是你如何做到这一点: 在你的控制器中,注入$state对象并使用$state.get方法: .controller('layersCtrl',function($state) { $state.get('map.layers').onEnter = blah; $state.get('map.layers').onExit = blahblah; }); 但不是这样,我建议您将此共享功能提取到服务中.如果你发现很难做到这一点,那么我会深入研究你的代码,因为模块之间似乎有太多的耦合. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |