сделать JSON из нескольких входов с angularjs

0

Я новичок в ионной, угловой и огневой базе. это, наверное, смешной вопрос :)

Я работаю с ионной + firebase, чтобы сделать приложение, я хочу сделать JSON с нескольких входных данных. У меня есть интерфейс, как показано ниже (изображение).

Изображение 174551

что я должен сделать, чтобы сделать JSON из "Меню" в качестве ключа и "Цена" в качестве значения. на изображении выше показывает неожиданный результат, результат должен быть таким

[{"yakiniku":"2000","ramen":"1200"}]

Посмотреть

<div class="row">
    <div class="col">
      <div class="item item-divider">
        Menu
      </div>
      <label class="item item-input">
        <input type="text" ng-model="menu_resto[0].menu1" name="menu_resto[]" placeholder="Menu">
      </label>
      <label class="item item-input">
        <input type="text" ng-model="menu_resto[1].menu2" name="menu_resto[]" placeholder="Menu">
      </label>
    </div>
    <div class="col">
      <div class="item item-divider">
        Price
      </div>
      <label class="item item-input">
        <input type="text" ng-model="menu_resto[0].price1" name="menu_resto[]" placeholder="Price">
      </label>
      <label class="item item-input">
        <input type="text" ng-model="menu_resto[1].price2" name="menu_resto[]" placeholder="Price">
      </label>
    </div>
  </div>
  {{menu_resto}}

контроллер

resto.controller('DaftarRestoCtrl',function($scope,DB,$firebaseArray){
  $scope.menu_resto = [];
});

Спасибо :)

  • 0
    в вашей разметке ... где кнопка сохранения?
  • 0
    эта структура не очень хорошая идея .... не [{name: "yakiniku", price: 2000},{name: "ramen", price: 1500}] названия своих объектов ... [{name: "yakiniku", price: 2000},{name: "ramen", price: 1500}] . Гораздо проще, когда вы имеете дело с повторяющимися элементами, структура которых соответствует. Также, когда вам нужно искать FireBase
Показать ещё 1 комментарий
Теги:
firebase

2 ответа

0

Этот вопрос сводится к чистому javascript. Пожалуйста, не индексируйте свои данные дважды. Его достаточно, чтобы вызвать переменные модели

menu_resto[0].menu
menu_resto[0].price
menu_resto[1].menu
menu_resto[1].price
...

Затем все, что вам нужно сделать, - нажать кнопку безопасной кнопки, связать следующую функцию с помощью ng-click="json = genJSON()":

$scope.json = {};
$scope.genJSON = function () {
   return $scope.menu_resto.map(function (entry) {
       var newObj = {};
       newObj[entry.menu] = entry.price;
       return newObj;
   })
}

Пожалуйста, рассмотрите возможность прочтения основной книги по javascript и некоторого учебника по угловому вопросу, прежде чем задавать следующий вопрос.

  • 0
    спасибо за ваши ответы и советы, я узнаю больше о javascript и angularjs :)
  • 0
    Рад слышать это, не хотел быть резким, просто у меня сложилось впечатление, что среднее качество вопроса все больше и больше ухудшается, и мне бы хотелось, чтобы больше людей на самом деле проводили свои собственные исследования перед тем, как передать материал. для сообщества. Надеюсь, ты не обиделся ни в коем случае.
0

Я предполагаю, что первый массив доступен на вашем контроллере где-то и что изменения действительно изменяют этот массив. Если это так, просто для каждого, который выполняет итерацию через этот массив и строит строку, должно быть достаточно. Я не знаю, что вы могли бы вызвать, чтобы просто сгладить массив в строку JSON.

Ещё вопросы

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