用于保存数据的$ scope的Angular Shorthand

时间:2015-10-09 08:55:07

标签: angularjs

有这样的简写吗?

 var data = 
 {
    name: $scope.admin.name,
    email: $scope.admin.email,
    roles: $scope.admin.roles
 };

通常在我查询并输入模型后我可以像这样使用:

 $scope.admin = {
     name: value1,
     email: value2,
     roles: value3
 }

编辑: 我在var数据中的确切问题如何让它更简单,如上所述,而不必输入" $ scope.admin"。

由于

2 个答案:

答案 0 :(得分:1)

如果您需要复制所有属性,请使用angular.copy

angular.copy($scope.admin, $scope.user)

如果您需要选择子集属性,则lodash之类的库可能会有用。您可以使用pick函数:

$scope.admin = {
    firstname: 'John',
    name: 'Doe',
    email: 'john@mycompany.com',
    roles: ['sysadmin']
};

$scope.user = _.pick($scope.admin, ['name', 'email', 'roles']);

// -> {name: 'Doe', email: 'john@mycompany.com', roles: ['sysadmin']}

答案 1 :(得分:1)

如果您不想使用angular.copy()进行深层复制,但只想在代码中键入较少的符号,则可以

var x = $scope.admin;
var data = 
{
    name: x.name,
    email: x.email,
    roles: x.roles
};