角UI状态
问题描述:
基本上我有此控制器:角UI状态
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函数引用作用域上的用户,然后从UsersService调用“addMany”方法。在这一点上,_toggled变量应该被过滤掉,否则它也会将“_toggled”发送到后端。
现在一个简单的解决方案是循环遍历用户并删除“_toggled”变量,但是有更好的方法还是我的结构错了?
答
你可以使用一个单独的数组为属性,像这样:
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) {
// ...
})
}
});