Я немного запутался во вложенной структуре 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 в текстовом поле?