Доступ к значениям из вложенного JSON - PullRequest
0 голосов
/ 05 сентября 2018

Я немного запутался во вложенной структуре JSON. Я пытаюсь выполнить ng-repeat для ключа JSON, столкнувшегося с несколькими ошибками.

Я конвертирую XSL в JSON, что успешно происходит. Теперь я хочу получить доступ к этому JSON для редактирования полей.

Мой JSON после преобразования: -

{
  "stylesheet": {
    "attribute-set": [
      {
        "attribute": {
          "_name": "text-align",
          "__prefix": "xsl",
          "__text": "center"
        },
        "_name": "__frontmatter",
        "__prefix": "xsl"
      },
      {
        "attribute": [
          {
            "_name": "space-before",
            "__prefix": "xsl",
            "__text": "80mm"
          },
          {
            "_name": "space-before.conditionality",
            "__prefix": "xsl",
            "__text": "retain"
          },
          {
            "_name": "font-size",
            "__prefix": "xsl",
            "__text": "22pt"
          },
          {
            "_name": "font-weight",
            "__prefix": "xsl",
            "__text": "bold"
          },
          {
            "_name": "line-height",
            "__prefix": "xsl",
            "__text": "140%"
          }
        ],
        "_name": "__frontmatter__title",
        "_use-attribute-sets": "common.title",
        "__prefix": "xsl"
      },
      {
        "attribute": [
          {
            "_name": "font-size",
            "__prefix": "xsl",
            "__text": "18pt"
          },
          {
            "_name": "font-weight",
            "__prefix": "xsl",
            "__text": "bold"
          },
          {
            "_name": "line-height",
            "__prefix": "xsl",
            "__text": "140%"
          }
        ],
        "_name": "__frontmatter__subtitle",
        "_use-attribute-sets": "common.title",
        "__prefix": "xsl"
      },
      {
        "attribute": [
          {
            "_name": "space-before",
            "__prefix": "xsl",
            "__text": "36pt"
          },
          {
            "_name": "font-size",
            "__prefix": "xsl",
            "__text": "11pt"
          },
          {
            "_name": "font-weight",
            "__prefix": "xsl",
            "__text": "bold"
          },
          {
            "_name": "line-height",
            "__prefix": "xsl",
            "__text": "normal"
          }
        ],
        "_name": "__frontmatter__owner",
        "_use-attribute-sets": "common.title",
        "__prefix": "xsl"
      }
    ],
    "_xmlns:xsl": "http://www.w3.org/1999/XSL/Transform",
    "_xmlns:fo": "http://www.w3.org/1999/XSL/Format",
    "_version": "2.0",
    "__prefix": "xsl"
  }
}

Я хочу получить доступ к этой части: -

"attribute": {
    "_name": "text-align",
      "__prefix": "xsl",
      "__text": "center"
}

ng-repeat текстовое поле с помощью клавиши _name с отображением метки т.е. значение и входное значение из текстового поля должны изменить __text значения.

Мой контроллер: -

$scope.xml = '';
$http({
  method: 'GET',
  url: 'test.xsl',
  timeout: 10000,
  transformResponse: function(data) {
    //string -> XML document object
    $scope.xml = data;
  }
}).success(function(data, status, headers, config) {
  //console.dir(data);          
  $scope.x2js = new X2JS();
  $scope.xmlText = $scope.xml;
  $scope.jsonObj = $scope.x2js.xml_str2json($scope.xmlText);
  console.log($scope.jsonObj);
  angular.forEach($scope.jsonObj, function(value, key) {
    console.log(value.attribute-set); ** // here I am getting ReferenceError: set is not defined in console**
    angular.forEach(value.attribute, function(v, k) {
      console.log(v._name);
      console.log(v.__text);
    });
  });
}).error(function(data, status, headers, config) {
  $window.alert('didnt passed.');
});

Мой просмотр HTML: -

<form method="post" id="contactFrm" name="contactFrm">
  <div ng-repeat="attrs in jsonObj.attribute._name">
    <input type=" text " required=" " placeholder=" " value=" " name="values " class="txt " ng-model="spaceb " ng-repeat="(key, val) in attrs>
  </div>
</form>

Так как же получить "_name" в качестве вложенного значения для использования ng-repeat в текстовом поле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...