У меня есть Угловое объект, который выглядит примерно так (MenuItems содержит больше данных, но тот не точку):AngularJS объект из JSON строки
$scope.data = {
title:'Title',
place:'Somewhere'
menuItems: [{
title: "This is a Title",
name: "John"},
{
title: "Another Title",
name: "Frank"} ]
};
Я создаю этот $ scope.data со значениями по умолчанию. Они всегда одни и те же. Эти данные используются для заполнения html-страницы с использованием ng-модели. А также вызов ng-repeat для отображения всех элементов меню.
<input class="text form-control" ng-model="data.title"></div>
<div ng-repeat="item in data.menuItems">
<input class="text form-control" ng-model="item.name"></div>
...
</div>
Затем я успешно экспортировали объект данных в строку JSON следующим образом:
$scope.json = angular.toJson($scope.data, false);
Какой выход строку JSON, подобный этому:
{"menuItems":[{"title":"This is a title","name":"John"},{"title":"Another Title","name":"Frank"}],"title":"Title", "place":"Somewhere"}
То, что я хочу сделать теперь нужно загрузить эту строку JSON и перезаписать объект $ scope.data (чтобы предоставить средства для изменения существующей строки JSON).
загружает строку следующим образом:
var json = JSON.stringify("{"menuItems":[{"title":"This is a title","name":"John"},{"title":"Another Title","name":"Frank"}],"title":"Title", "place":"Somewhere"}");
$scope.data = JSON.parse(json);
Но никаких данных не обновляются и все дивы созданы в нг-повторить исчезают.
Я не могу изменить структуру JSON, поскольку он используется таким образом в другом приложении. Есть ли способ достичь того, чего я хочу?
Спасибо.
Вы проверили консоль, чтобы увидеть, есть ли какие-либо ошибки? –
есть. нет ошибок. Строковая строка json также является правильной, а также – Androidicus
'" {"menuItems": [{"title": "Это заголовок", "name": "John"}, {"title": "Another Title", "Another Title" «name»: «Frank»}], «title»: «Title», «place»: «Somewhere»} »)' Вы уверены, что это действительно JSON? Похоже, что внутренние кавычки не экранируются/внешние кавычки не отличаются от внутренних. – DrinkBird