Arrays AngularJS:从数组中获取动态数据

Arrays AngularJS:从数组中获取动态数据,arrays,node.js,angularjs,scope,socket.io,Arrays,Node.js,Angularjs,Scope,Socket.io,我有一个node.js、socket.io和angular应用程序,每当有人连接到服务器并将其放入我的“users”数组时,我都会在其中创建一个“user”对象。 现在我想让angular接受用户并动态更新页面以显示数组 //users array contains all active user objects var users =[]; //user object (example) var exampleuser = { name: "Hans", clicks: 0,

我有一个node.js、socket.io和angular应用程序,每当有人连接到服务器并将其放入我的“users”数组时,我都会在其中创建一个“user”对象。 现在我想让angular接受用户并动态更新页面以显示数组

//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>
//用户数组包含所有活动用户对象
var用户=[];
//用户对象(示例)
var exampleuser={
姓名:“汉斯”,
点击次数:0,
朗:“德语”
}
//index.html适用于所有活动用户的范围
所有在线用户
{{$index+1}}
{{user.name}
(单击:{user.clicks})

那么,我必须如何配置我的Angular controller,以便从数组“users”中获取所有用户,并将它们放入Angular$范围?谢谢

您必须将更新此阵列的users array和socket.io代码包装到angular service中,然后将此服务注入控制器。在控制器内部,您可以分配阵列,例如,
$scope.userList=yourService.users

唯一的问题是,您必须将服务用户数组的更新打包,以便Angular知道对数组的更改。这将非常简单:

... Inside your socket.io angular service
function updateArray(newUser){
  $rootScope.$apply(function() { users.push(newUser); };
};

嘿,拜尔斯,谢谢你的评论,但我并没有真正了解这一切。在我的userController中,我放入$scope.userList=yourService.users;我在哪里创建我的服务,我的控制器在哪里?在我的index.js中,我将调用“updateArray(newUser)”?我不知道如何连接所有东西。@Marc服务是Angular的核心组件之一。我建议您退后一步,重新学习Angular的基本概念。我建议从教程和开发人员指南开始,我做了教程,但它没有使用socket.io和node.js。所以我唯一的问题是如何添加对象从我的“服务器”,以便我的index.html页面可以访问此信息。它已经在为socket.io使用静态inputWell了。您仍然需要一个客户端组件来侦听来自服务器的更新,对吗?因此,socket.io客户端代码需要放在Angular服务中,在您接收服务器数据的回调中,您将调用
updateArray
函数。这将导致Angular收到阵列更改的通知,进而更新控制器阵列和视图。好的,但是如何在node.js/socket.io服务器中调用Angular之外的Angular控制器类(updateArray)?我的index.html上没有ng click按钮,因为我希望在用户连接时直接将用户添加到数组中,而不是使用onclick。