Javascript AngularJS路由导致服务器调用问题
我正在nodewebkit应用程序中使用Javascript AngularJS路由导致服务器调用问题,javascript,angularjs,angularjs-routing,node-webkit,Javascript,Angularjs,Angularjs Routing,Node Webkit,我正在nodewebkit应用程序中使用AngularJS。 我有三种看法: Home.html Conversation.html Login.html 登录时,我正在呼叫 $state.go('home.main'); 哪个叫 $stateProvider.state('home.main', { url: '/home', views: { "mainContent": {
AngularJS
。我有三种看法:
$state.go('home.main');
哪个叫
$stateProvider.state('home.main', {
url: '/home',
views: {
"mainContent": {
templateUrl: 'views/home.html',
controller: 'loginController'
}
}
}
在主html中,我正在进行服务器调用(通过socket.io)以获取所有对话。
由于数据量巨大,加载它需要一些时间,在这个时间间隔内,即在用户从服务器获得响应之前,如果用户单击注销,它会将用户带回登录页面
$scope.logout = function(){
//Logout Logic
$state.go('login');
}
i、 它叫
$stateProvider.state('login', {
url: '/login',
templateUrl: 'views/login.html',
controller: "loginController"
});
现在,当用户尝试登录时,服务器会响应为获取对话而发出的呼叫,允许用户将其带到/home/conv.html
当数据从服务器发送到客户端时,我不想禁用“注销”按钮。有没有办法从/home路由到/login,我们可以取消所有服务器呼叫 我从以下位置复制了代码:
$stateProvider.state(“联系人”{
模板:“{{title}}”,
解析:{title:'我的联系人'},
控制器:功能($scope,title){
$scope.title='我的联系人';
},
合一者:功能(标题){
如果(标题){…做点什么…}
},
onExit:功能(标题){
如果(标题){…做点什么…}
}
})
当您从home.main移动到另一条路线时,将触发onExit事件。因此,您应该在声明home.main路由的位置注册以处理事件。在这种情况下,您可以取消所有服务器调用。在使用socket.io时,我建议您使用函数
socket.removeAllListeners()
您可以使用socket.disconnect()断开套接字连接。
查看是否有帮助
$stateProvider.state("contacts", {
template: '<h1>{{title}}</h1>',
resolve: { title: 'My Contacts' },
controller: function($scope, title){
$scope.title = 'My Contacts';
},
onEnter: function(title){
if(title){ ... do something ... }
},
onExit: function(title){
if(title){ ... do something ... }
}
})