Angular UI状态与服务相结合

时间:2014-11-24 10:51:18

标签: angularjs state

基本上我有这个控制器:

angular.controller('AddUsersCtrl', function ($scope, UsersService) {
    $scope.users = [];

    function toggleUser (user) {
        user._toggled = !user._toggled;
    }

    function addAll () 
        var users = $scope.users;

        UsersService
            .addMany(users)
            .success(function (response) {
                // ...
            })
    }
});

它是一个页面的控制器,用户可以一次添加多个用户,并且每个用户都可以切换(基本上切换是视图用来切换用户信息的UI状态)

但正如您所看到的,addAll函数引用了作用域上的用户,然后调用了" addMany" UsersService的方法。在这一点上,_toggled变量应该被过滤掉,否则它也会发送" _toggled"到了后端。

现在一个简单的解决方案是循环访问用户并删除" _toggled"变量,但是有更好的方法还是我的结构错了?

1 个答案:

答案 0 :(得分:1)

您可以为属性使用单独的数组,如下所示:

angular.controller('AddUsersCtrl', function ($scope, UsersService) {
    $scope.users = [];
    $scope.toggledUsers = {};

    function toggleUser (user) {
        $scope.toggledUsers[user] = !$scope.toggledUsers[user];
    }

    function addAll () 
        var users = $scope.users;

        UsersService
            .addMany(users)
            .success(function (response) {
                // ...
            })
    }
});