我想使用我的API发布帖子请求。 JSON是这样的:
{
"_id": "56b8e96xxxxxxxxxx7cd",
"name": "abc",
"conditions": [
{
"name": "Condition 1"
},
{
"name": "Condition 2"
}
],
"id": 10
}
以下是角度代码:
app.factory('Cohort', function($resource) {
return $resource('http://API URL:id')
});
我使用以下角度函数来发布帖子请求:
$scope.createCohort= function (){
var arr=["condition 1","condition 2"];
var cohort=new Cohort();
cohort.name=$scope.CohortName;
cohort.id=$scope.CohortId;
for(var i=0;i<length_of_arr;i++)
{
cohort.conditions[i].name=arr[i] // This line gives me error.
}
Cohort.save(cohort,function(){
});
};
错误是
无法阅读财产&#39; 0&#39;未定义的
我如何向其发送帖子请求?
答案 0 :(得分:1)
由于你不精确地声明var arr = [..]。我认为你已经在一个函数内声明了它,而不是在你的控制器中声明它使它无法访问createCohort函数。
在控制器中声明var arr = [](不在其中定义的函数中)并删除设置值的位置上的 var (因此不要屏蔽它) 。或者使用$ scope.arr = [...];
请注意,如果您从未在视图模板中使用arr,最好不要将其存储在$ scope中,因为angular watch会对$ scope中的所有字段进行彻底更改。
编辑:
这是问题:在for循环之前添加:
cohort.conditions = [];
并在for循环中执行:
cohort.conditions.push({name:arr[i]});