通过邮寄提交时,$ scope变为空

时间:2016-06-15 07:31:57

标签: angularjs angularjs-scope angular-http

我正在尝试使用post提交$ scope.data。 $ scope.data在传递给变量时变为空。

var token     = angular.element(document.querySelector('meta[name="csrf-token"]')).attr('content');
    console.log("Questions: ");
    console.log($scope.questions);
    var qs = $scope.questions;
    $http({
      url: '/admin/exam/questions/store',
      method: 'POST',
      data: {questions: qs, _token:token}
    });

console.log 2

console.log

Plunker

2 个答案:

答案 0 :(得分:1)

问题在于您选择$scope.q的起始数据类型。它被初始化为一个数组,如$scope.q = [];。然后,您将向该数组添加属性,例如使用此模型绑定的问题输入控件:ng-model="q.question"。但是当$scope.q被序列化为JSON时,这些额外的属性将被忽略。

不是将q初始化为数组,而是将其初始化为对象,例如:$scope.q = {}

您可以通过在视图中添加以下表达式来诊断q对象的JSON表示:{{q | json}}

答案 1 :(得分:0)

只有一种情况可行。当你设置  var qs = $ scope.data; $ scope.data为空。然后你得到了空变量的链接。所以第一点是使用像这样的帖子

var qs = $scope.data;
$http({
  url: '/admin/exam/questions/store',
  method: 'POST',
  data: {questions: **$scope.data**, _token:token}
});

第二点是调试:)但我认为我的第一种方法将有所帮助