javascript - 无法读取未定义的属性 '#<Object>' 出现错误?

标签 javascript jquery angularjs angularjs-directive

我有 json 文件。我正在尝试从 json 文件获取 json 数据。然后我需要转换 json(更改键和值)键和值,因为这个 puglin 需要键和值中的格式和 https://github.com/nimbly/angular-formly 。 但我的问题是从这个插件获取表单。 无法读取未定义的属性“#” 你能告诉我哪里错了吗? 问题重现。单击按钮(从文件中获取 json)。然后您将在控制台中看到该错误。我想在单击按钮时显示表单(单击 grt json A) 普朗克 http://plnkr.co/edit/bbd6D828TU8TpZYre9D0?p=preview

$scope.getFromAFile= function () {
  // body...
  var inputs=[];
  $http.get('a.json').success (function(data){
    var a=changeData(data);
          console.log('pp');

  console.log(data.studentName);
  $scope.formFields.push(a['input']);


}).error(function(err){
        alert(err);
    });

}

function changeData(data) {

    var map = { NUMBER: "number", TEXT: "text", SWITCH: "select" };

    // data is an object - use for .. in to enumerate
    for (var key in data.input) {
        var e = data.input[key];   // alias for efficient structure dereferencing
        e.label = e.displayName;
        e.title = e.displayDetail;
        e.type = map[e.inputType];

        delete e.displayName;
        delete e.displayDetail;
        delete e.inputType;
    }

    console.log('after data...');
    console.log(data);
    return data;
};

谢谢

最佳答案

您正在尝试插入$scope.formFields处的一个不存在的数组。

这有效。 http://plnkr.co/edit/p5niu38aWpN5BbIxcyZ0?p=preview

$scope.getFromAFile= function () {
  // body...
  var inputs=[];
  $http.get('a.json').success (function(data){
    var a=changeData(data);
          console.log('pp');

  console.log(data.studentName);
  console.log($scope);
  $scope.formFields = a['input'];


}).error(function(err){
        alert(err);
    });

}

关于javascript - 无法读取未定义的属性 '#<Object>' 出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25248540/