Получить массив данных от angularjs

0

Прежде всего, извините за мой английский. Мне интересно, как получить данные массива из angularjs, поэтому я могу сохранить его с помощью nodejs.

Вот мой скрипт angularjs:

        angular.module('myAddList', [])
            .controller('myAddListController', function(){
                var addList = this;
                addList.lists = [];  

                addList.tambah = function(){
                    addList.lists.push({title:addList.listTitle,greet:addList.listGreet});
                    addList.listTitle = '', addList.listGreet = '';
                }

                addList.hapusList = function(list){
                    addList.lists.splice(addList.lists.indexOf(list), 1);
                }
            });

и вот мой nodejs:

    var fs = require("fs");

    var d = new Date();

    var myJson = {title : {
          "lists": []
        }
    };

    function saveFile(){
        fs.writeFile( document.getElementById("namafile").value + ".json", JSON.stringify( myJson ), "utf8", function(err) {
            if(err) {
                return console.log(err);
            }else if(!err){
                console.log("The file was saved!");
            }
        }); 
    }

Я думаю, что "myJson" должен быть из массива angularjs, который является "addList.lists = [];" но я не знаю, как это сделать. Или, может быть, есть альтернативный путь?

-- Редактировать --
Я думаю, что единственным решением является сохранение массива в localStorage и сохранение его в формате json. Но у меня есть другая проблема, она заменяет все пробелы на этот символ "\", это так раздражает.

Вот следующий код (добавьте несколько изменений), допустим, что мы уже сохранили массив в localStorage и сохранили его с помощью nodejs:

var fs = require("fs");
var myJson = {
    key: "myvalue"
};

var d = new Date();
var locS = localStorage.getItem("invoice");

function saveFile(){
    var nama = document.getElementById("namaFile").value;
    fs.writeFile( nama + ".json", JSON.stringify( locS ), "utf8", function(err) {
        if(err) {
            return console.log(err);
        }else if(!err){
            console.log("The file was saved!");
        }
    }); 
}
myJson = fs.readFile("undefined.json", "utf8", function (err,data) {
          if (err) {
            return console.log(err);
          }
          console.log(JSON.parse(data));
          console.log(data[2]);});

если я запустил этот код, он даст мне хороший результат

 console.log(JSON.parse(data));

и когда я попробовал это

 console.log(data[2]);

он дает мне "\" в качестве вывода, кстати, это json файл

"{\"tax\":13,\"invoice_number\":10,\"customer_info\":{\"name\":\"Mr. John Doe\",\"web_link\":\"John Doe Designs Inc.\",\"address1\":\"1 Infinite Loop\",\"address2\":\"Cupertino, California, US\",\"postal\":\"90210\"},\"company_info\":{\"name\":\"Metaware Labs\",\"web_link\":\"www.metawarelabs.com\",\"address1\":\"123 Yonge Street\",\"address2\":\"Toronto, ON, Canada\",\"postal\":\"M5S 1B6\"},\"items\":[{\"qty\":10,\"description\":\"Gadget\",\"cost\":9.95,\"$$hashKey\":\"004\"}]}"
  • 0
    @adamkwadsworth нет узлов на PLNKR, я думаю :(
  • 0
    где ваш серверный маршрут и контроллер?
Показать ещё 3 комментария
Теги:
arrays

1 ответ

0

Сделайте запрос http на ваш сервер nodejs таким образом

 angular.module('myAddList', [])
            .controller('myAddListController', function($http){//inject $http
                var addList = this;
                addList.lists = [];  

                addList.tambah = function(){
                    addList.lists.push({title:addList.listTitle,greet:addList.listGreet});
                    addList.listTitle = '', addList.listGreet = '';
                }

                addList.hapusList = function(list){
                    addList.lists.splice(addList.lists.indexOf(list), 1);
                }
                $http.post('your server url',addList).success(function(successReponse){
                     //do stuff with response
                }, function(errorResponse){  
                    //do stuff with error repsonse
                }
            });

и тогда у вас должен быть маршрут для этого запроса с типом сообщения, а затем в контроллере, который выполняет этот запрос маршрута, вы должны выполнить операции сохранения файла

Ещё вопросы

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