AngularJS: Пользовательский объект

Я хочу иметь объект, который будет сохранять данные для входа пользователя в мою сеть. Я хочу, чтобы он посчитал, сколько раз пользователь был подключен, сколько раз пользователь перемещался между страницами, сколько раз пользователь заказывал таблицу и сколько раз пользователь нажимал на его имя.

Я строю этот объект:

$scope.User = {
    'username': '',
    'Password': '',
    'connected': false,
    'countConnect': 0,
    'countPaging':0,
    'countOrder':0,
    'countTapName':0
};

и это пример функций для подсчета:

    $scope.tapName = function(){
        if ($scope.username == $scope.User.username){
            $scope.User.countTapName ++;
        }
    };

    $scope.countOrder = function (){
       $scope.User.countOrder++;
    };

    $scope.pageChanged = function() {
        console.log('Page changed to: ' + $scope.currentPage);
        $scope.User.countPaging ++;
    };

Моя проблема в том, что все пользователи получают одинаковое количество, а не для отдельного пользователя.

HTML:

<td ng-click="tapName()" ng-model="un" class="col-lg-1">{{user.userN}}</td>
        <td class="col-lg-1">{{user.PassW}}</td>
        <td class="col-lg-1">{{user.Name}}</td>
        <td class="col-lg-1">{{user.LastName}}</td>
        <td class="col-lg-1">{{User.countConnect}}</td>
        <td class="col-lg-1">{{User.countPaging}}</td>
        <td class="col-lg-1">{{User.countOrder}}</td>
        <td class="col-lg-1">{{User.countTapName}}</td>

Есть ли способ сделать это лучше?

1 ответ

Решение
  • использовать массив пользователей un:

$ scope.Users = [user1, user2,...]

  • используйте директиву ng-repeat:

https://docs.angularjs.org/api/ng/directive/ngRepeat

<div ng-repeat="user in Users">
        <div ng-click="tapName(Users.user)">
           <div>{{$index}}</div>
           <div>{{user.Name}}</div>
           ...
        </div>
</div>
  • и передайте своего пользователя:

    $ scope.tapName = function (user) {user.countTapName ++; };

Другие вопросы по тегам