使用angularjs从多个输入中创建JSON

时间:2015-09-24 18:57:28

标签: javascript json angularjs firebase

我是离子,角度和火基的新手。这可能是一个荒谬的问题:)

我正在使用ionic + firebase创建一个应用程序,我想从多个输入中创建一个JSON。我有一个如下图所示的界面。

enter image description here

我该如何从菜单'制作JSON?如密钥和' Price'为。 在上图中显示意外结果,结果必须如此

[{"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 = [];
});

谢谢你:)

2 个答案:

答案 0 :(得分:0)

我假设你的控制器上的第一个数组可用,并且编辑实际上改变了这个数组。如果是这种情况,那么迭代遍历该数组并构建字符串的每个都应该足够了。我不知道你可以调用的任何东西只是将数组展平为JSON字符串。

答案 1 :(得分: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的基本书和角度教程。