我有一个node.js,socket.io和angular应用程序,每当有人连接到服务器并将其放入我的“users”数组时,我就会创建一个“user”对象。 现在我希望有角度来获取用户并动态更新页面以显示数组。
//users array contains all active user objects
var users =[];
//user object (example)
var exampleuser = {
name: "Hans",
clicks: 0,
lang: "German"
}
//index.html angular scope for all active users
<table>
<thead>
<tr><th colspan="4">All online users</th></tr>
</thead>
<tbody>
<tr ng-repeat="user in UserList">
<td>{{$index + 1}}</td>
<td><img src="./img/flags/{{user.lang}}.png" /></td>
<td>{{user.name}}</td>
<td>(clicks: {{user.clicks}} )</td>
</tr>
</tbody>
</table>
那么我如何配置我的Angular控制器以便从阵列“用户”中获取所有用户并将它们放在角度$ scope中?感谢
答案 0 :(得分:1)
您必须将您的users array和socket.io代码包装在角度服务中更新此数组,然后将此服务注入您的控制器。在您的控制器内,您可以分配您的阵列,例如$scope.userList = yourService.users;
唯一的问题是你必须在$apply中包装服务用户数组的更新,以便Angular知道对数组的更改。它将如此简单:
... Inside your socket.io angular service
function updateArray(newUser){
$rootScope.$apply(function() { users.push(newUser); };
};