Ionic/Angular 和 Socket.IO - 在收到 Socket.IO 事件时显示弹出窗口
Ionic/Angular and Socket.IO - Show popup upon Socket.IO event received
我正在尝试使用 Ionic Framework (AngularJS) 和 Socket.IO.
构建实时移动应用程序
来自 jQuery 背景,我对整个 Ionic/Angular 应用程序设计和结构(例如,控制器、服务等)有点陌生。所以我想知道,我的应用程序应该如何构建,或者 best/ideal 构建我的应用程序的方式是什么?
更具体地说,在 Ionic/Angular 结构的应用程序中,我通常的 Socket.IO 代码应该放在哪里?我见过一个组件 (https://github.com/btford/angular-socket-io),它(据我所知)将 Socket.IO 代码封装在 Angular 工厂中。这是要走的路吗?
我真正想要实现的是:
- 收到 Socket.IO 事件时打开一个 (Ionic) 弹出窗口并且
- emit/send Socket.IO event/message 发生 UI 事件(例如,单击按钮)。
我的 Ionic/Angular 代码结构应该如何实现?也就是说,哪个代码进入哪个 component/controller/service/factory?
即使是对结构的高级描述也可以作为起点。
作为您的示例,这是我使用 ChatCtrl
控制器的方法。
<!-- app.js -->
<script>
angular.module('chatApp', ['ngAnimate'])
.controller('ChatCtrl', ['$scope', '$http', function($scope, $http) {
var socket = io.connect();
// on connect, grab username
socket.on('connect', function(data) {
nickname = prompt("What's your name?");
socket.emit('join', nickname);
});
socket.on('statusConnected', function(data) {
$scope.status = data;
$scope.$apply($scope.status);
});
}]);
</script>
我的弹出窗口是 JavaScript nickname = prompt("What's your name?")
,但您可能会触发 modal
或您想要的任何其他带有更多 JS 的弹出窗口
我正在尝试使用 Ionic Framework (AngularJS) 和 Socket.IO.
构建实时移动应用程序来自 jQuery 背景,我对整个 Ionic/Angular 应用程序设计和结构(例如,控制器、服务等)有点陌生。所以我想知道,我的应用程序应该如何构建,或者 best/ideal 构建我的应用程序的方式是什么?
更具体地说,在 Ionic/Angular 结构的应用程序中,我通常的 Socket.IO 代码应该放在哪里?我见过一个组件 (https://github.com/btford/angular-socket-io),它(据我所知)将 Socket.IO 代码封装在 Angular 工厂中。这是要走的路吗?
我真正想要实现的是:
- 收到 Socket.IO 事件时打开一个 (Ionic) 弹出窗口并且
- emit/send Socket.IO event/message 发生 UI 事件(例如,单击按钮)。
我的 Ionic/Angular 代码结构应该如何实现?也就是说,哪个代码进入哪个 component/controller/service/factory?
即使是对结构的高级描述也可以作为起点。
作为您的示例,这是我使用 ChatCtrl
控制器的方法。
<!-- app.js -->
<script>
angular.module('chatApp', ['ngAnimate'])
.controller('ChatCtrl', ['$scope', '$http', function($scope, $http) {
var socket = io.connect();
// on connect, grab username
socket.on('connect', function(data) {
nickname = prompt("What's your name?");
socket.emit('join', nickname);
});
socket.on('statusConnected', function(data) {
$scope.status = data;
$scope.$apply($scope.status);
});
}]);
</script>
我的弹出窗口是 JavaScript nickname = prompt("What's your name?")
,但您可能会触发 modal
或您想要的任何其他带有更多 JS 的弹出窗口