Angularjs 为角度控制器中的对象预先设置对象键

Angularjs 为角度控制器中的对象预先设置对象键,angularjs,object,prepend,Angularjs,Object,Prepend,我认为这是一个javascript问题,但我不确定 假设我有一个这样的物体 var foo = { foo1: 'name', foo2: 'name2' } 当我在控制台中用这个按钮进行post呼叫时,post主体显示 {foo1: 'name', foo2: 'name2'} 太好了,太好了 但在我的后端,假设请求主体需要: {type: {foo1: 'name', foo2: 'name2'}} 在angular中,$scope.t

我认为这是一个javascript问题,但我不确定

假设我有一个这样的物体

   var foo = {
        foo1: 'name', 
        foo2: 'name2' 
    }
当我在控制台中用这个按钮进行post呼叫时,post主体显示

{foo1: 'name', foo2: 'name2'}
太好了,太好了

但在我的后端,假设请求主体需要:

{type: {foo1: 'name', foo2: 'name2'}}
在angular中,$scope.type中有类型键,$scope.foo中有foo对象

我试着去实现这一点

$scope.foo = {$scope.type:$scope.foo};
这不起作用,它只是说$scope.type中的“.”是不允许的

然后我尝试设置一个var type=$scope.type,然后将

$scope.foo = {type: $scope.foo};
除了回复帖子外,它是“类型”这个词,而不是实际值本身。
这是怎么回事?为什么我不能将键$scope.type前置到我的foo对象?

不能在对象大括号中使用动态值作为名称类型。 相反,您应该这样做:

var obj = {};
obj[$scope.type] = $scope.foo;
$scope.foo = obj;

谢谢,我用下划线js修改了整个对象本身,所以我不必预先处理这个。但我确实尝试了这个解决方案,它成功了!有道理,谢谢。