Angularjs сохраняет входные данные пользователя и генерирует их в файл json

0

Я новичок в разработке 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;
        });
    });
  • 1
    Вы хотите создать новый файл JSON на стороне сервера или на стороне клиента?
  • 0
    Извините, я даже не знаю разницу между этими двумя.
Показать ещё 1 комментарий

2 ответа

1

Логически вы должны работать с обработкой на стороне сервера в этой ситуации. Напишите сервер 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-данных, который может сильно повлиять на работу вашего браузера.

  • 0
    Спасибо. Но я не знаю, как сохранить изменения, сделанные пользователями. Можете ли вы показать мне, как это сделать?
0

самый простой способ сгенерировать файлы на стороне клиента (не требуется логика на стороне сервера), используя 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();
    }
});

живой пример

  • 0
    Спасибо. Так что, если я захочу сохранить эти изменения после того, как пользователи нажмут кнопку «Сохранить» на веб-странице, будет ли это так же, как вы делали выше? Также, пожалуйста, объясните, какой фрагмент кода на самом деле работает?
  • 0
    @CarrieShen Я добавляю живой пример на plunker, смотрите мои обновления, вам просто нужно вызвать generateJSONFile в обработчике кликов, в generateJSONFile , он создает большой blob объект на основе строки json, затем создает объект url, который может быть загружен браузером на основе этот шарик,
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню