Я новичок в разработке angularjs и веб-приложений. Я делаю простое веб-приложение. Во-первых, он считывает настройки по умолчанию из json файла. Затем в Интернете пользователи могут изменять эти параметры. Тем не менее, я застрял на том, как сохранить изменения, внесенные пользователями, и как их сгенерировать в новый json файл. Я не знаю, что я должен поставить в контроллер. Я пробовал различные методы, найденные в Интернете, но никто из них не работал. Пожалуйста помогите.
app.js - я прочитал только часть прочитанного файла, но мне нужна часть файла save.
var app1 = angular.module("myApp", [])
app1.controller("myAppCtrl", function ($scope, $http) {
$http.get('src/default.json').then(function(response){
$scope.messes = response.data;
});
});
Логически вы должны работать с обработкой на стороне сервера в этой ситуации. Напишите сервер api (в php, node.js, java и т.д.), Чтобы принять json, конвертировать в json файл и хранить где-нибудь и возвращать загружаемую ссылку физического json файла.
Итак, в вашем случае:
$http.get('src/default.json').then(function(response){
$scope.messes = response.data;
// perform your logic, create a json and send to server
});
Пусть ваш сервер делает тяжелый подъем обработки. Также важно учитывать размер json-данных, который может сильно повлиять на работу вашего браузера.
самый простой способ сгенерировать файлы на стороне клиента (не требуется логика на стороне сервера), используя HTML5 Blob и File:
var app1 = angular.module("myApp", [])
app1.controller("myAppCtrl", function ($scope, $http) {
$http.get('src/default.json').then(function(response){
$scope.messes = response.data;
});
$scope.generateJSONFile = function(){
var jsonStr = JSON.parse(JSON.stringify($scope.messes));
var blob = new Blob([jsonStr], {type: "application/json"});
var url = URL.createObjectURL(blob);
var a = document.createElement('A');
a.download = "default.json";
a.href = url;
document.body.appendChild(a);
a.click();
}
});
generateJSONFile
в обработчике кликов, в generateJSONFile
, он создает большой blob
объект на основе строки json, затем создает объект url, который может быть загружен браузером на основе этот шарик,