【问题标题】:Not getting JSON object. AngularJS没有得到 JSON 对象。 AngularJS
【发布时间】: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


【解决方案1】:

谢谢大家,现在我可以在我第二次解决的 JSON 中推送必要的数据了。

$scope.addInfos = {Data: []};

     $scope.Create = function() {
     $http({
            method : 'POST',
            url : 'http://192.120.27.8:2000/api/Add',
            data : $scope.addInfos
             }).success(function(data, status, headers, config) { 
                  growl.success("Created a new File");  
                   console.log(data);
                  },function (data, status, headers, config) { 
                       growl.error("Something is wrong");
                  });

     };

我的第二个问题仍然存在,现在如何将这些数据推送到服务。 var something =[];?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 2017-10-27
    • 1970-01-01
    • 2017-09-28
    • 2017-05-13
    • 2015-10-17
    • 1970-01-01
    相关资源
    最近更新 更多