【发布时间】:2018-04-20 16:00:11
【问题描述】:
我是 Angular 的新手,正在尝试 POST 数据,但我得到了未定义的状态。我的 JSON 原始正文是这样的:
{
"Name": "Something",
"Description": "Something",
"Data": []
}
名称和描述来自用户输入字段,稍后将使用数据将另一个 JSON 对象推送到数组中。
我试过但没有得到准确的输出。
控制器:-
app.controller('postController', ['$scope', '$http', 'appService', function ($scope, $http, AppService) {
$scope.addInfos = [{
Name: $scope.name,
Description: $scope.description,
Data: []
}];
$scope.Create = function () {
$scope.addInfos.push({
'Name': $scope.Name,
'description': $scope.Description,
'Data': []
});
$scope.dataObj = {
Name: $scope.name,
Description: $scope.description,
Data: []
};
$http({
method: 'POST',
url: 'http://192.120.27.8:2000/api/Add',
data: $scope.dataObj
}).then(function (data, status, headers, config) {
alert("success");
console.log(data + $scope.Name + $scope.Description);
}, function (data, status, headers, config) {
alert("error");
});
$scope.name = '';
$scope.Description = '';
};
HTML 页面:-
<div class="input-group col-md-10">
<span class="input-group-addon" id="reg_input" >Name</span>
<input type="text" class="form-control" placeholder="" ng-model="addInfos.name">
</div>
<div class="input-group sepH_b col-md-10">
<span class="input-group-addon" id="reg_input" >Description</span>
<textarea name="reg_textarea" id="reg_textarea" cols="10" rows="3" class="form-control" ng-model="addInfos.description"></textarea>
</div>
<div class="col-md-4">
<a style="" class="btn btn-md btn-primary" ng-click="Create(addInfos)">Create</a>
</div>
我在控制台中看到的输出是[object Object]。我在这里犯了什么错误?
注意:- 这里我没有提到 Data: 字段,因为它现在将是预定义数组,就像 {data:[]} 需要注入并在 JSON 中传递名称和描述,如上所述。
其次,我还需要将所有输出数据推送到 Service 以存储以供进一步使用。
【问题讨论】:
-
应该是
.then(function (data)或.success(function (data, status, headers, config)(.then会有一个嵌套对象,所以使用data.data) -
@AlekseySolovey 谢谢我可以获得成功 POST 的信息之一。但这不是我真正想要的解决方案。我的 Name 、 Description 和 Segment 没有被注入到对象中。在没有这些信息的情况下填充数据。
标签: angularjs json post controller