var NicklistCtrl = function ($scope, chatServer) {
    $scope.users = {};

    chatServer.on('join', function(params) {
        var channel = params.channel,
            user = params.user;

        if (!$scope.users[user.nickname]) {
            $scope.users[user.nickname] = user;
        }
    });

    chatServer.on('nicklist', function(channel) {
        console.log('Received nicklist', channel.users);

        $scope.users = channel.users;
    });
};

var NicklistCtrl = function ($scope, chatServer) {
    $scope.users = {};

    chatServer.on('join', function(params) {
        var channel = params.channel,
            user = params.user;

        if ($scope.users[user.nickname]) {
            $scope.users[user.nickname] = user;
        }
    });

    chatServer.on('nicklist', function(channel) {
        console.log('Received nicklist', channel.users);

        $scope.users = channel.users;
    });
};

--- 
+++ 
@@ -5,7 +5,7 @@
         var channel = params.channel,
             user = params.user;
 
-        if ($scope.users[user.nickname]) {
+        if (!$scope.users[user.nickname]) {
             $scope.users[user.nickname] = user;
         }
     });
Fix bug with new users joining.
