quiero crear un objeto json en Angularjs. cuando agregue en addBasket agregar nueva cesta objeto de la matriz y cuando haga clic en addOrder agregar nuevo orden de la matriz. de hecho, el campo de fecha no se repita en bucle. hacerlo de manera que es bueno para crear un objeto json? o puede existir una buena solución para crear un objeto json.

Editar pregunta:

Me gustaría crear el objeto en el formato json. Pongo el siguiente formato. Escribí el código que he puesto. De hecho, mi problema es agregar un objeto a las órdenes de la matriz. cómo agregar nuevos objetos a los pedidos de la matriz?

  [
{
  "date":'2015-30-7',
 "baskets": [
   {

     "orders": [
      {
        "id": "12"
      }
     ],
     "customer": {
      "phone": "555555"
     },
     "discount": "8"
    }
  ]
 }
]

JS:

var app = angular.module('app', []);


app.controller('myController', function($scope, $http) {
  $scope.typistData = [];
    $scope.typistData.push({
      baskets: [{
        orders:[]
      }]
    });
    
  $scope.addBasket = function() {
    $scope.typistData.push({
     baskets: [{
        orders:[] 
      }]
    });
    
  };
});

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='app' ng-controller='myController'>

        <input type="text" ng-model="data.name">
        <hr>
  <div ng-repeat="data in typistData" ng-if="typistData">
    <form  novalidate ng-submit="submitOffices()">

      <div>
        <ng-form  ng-repeat="basket in data.baskets">
          <div>
            <input type="text" ng-model="basket.customer.phone">
            <br>
            <input type="text" ng-model="basket.discount">
             <input type="text" ng-model="basket.orders[0].id">
                <input type="button" value="addOrder">
          </div>
          <hr>
        </ng-form>
      </div> 
    </form>
  </div> 
   <button ng-click="addBasket()">Add Basket</button>
  <div>
    <pre>{{ typistData | json }}</pre>
  </div>
 
</div>

  • Podría reformular su pregunta de una manera mejor? Usted obtener respuestas más rápido de esa manera!
  • Tal vez usted podría tratar de escribir su pregunta en su lengua materna y, a continuación, el uso de traductor de Google para obtener una mejor descripción?
  • su forma de crear JSON que es correcto y no hay ningún buen camino disponible hasta que no sabemos acerca de qué tipo de objeto JSON que usted desea .Objeto JSON puede ser válido y no válido , no se puede decir que es un buen JSON o malo JSON porque todo depende requisito
  • Alex McMillan se puede ver fragmento de código averiguar mi esperar.
InformationsquelleAutor ali | 2015-07-30

1 Comentario

  1. 1

    Por lo que he entendido de tu pregunta, quieres capaz de añadir una cesta para las cestas de cualquiera de los mecanógrafos, y también desea agregar un pedido a las órdenes de una de las canastas de uno de los mecanógrafos.

    Para la manipulación de la que creo que puede pasar en los objetos adecuados para addBasket y addOrder dentro de ng-repeat con ng-click (que funciona porque se pasa la referencia). Por lo que un posible trabajo, el cambio puede ser este :

    Ver la parte :

    <div ng-repeat="data in typistData" ng-if="typistData">
      <form  novalidate ng-submit="submitOffices()">
    
        <div>
          <ng-form  ng-repeat="basket in data.baskets">
            <div>
              <input type="text" ng-model="basket.customer.phone">
              <br>
              <input type="text" ng-model="basket.discount">
              <input type="text" ng-model="basket.orders[0].id">
              <!-- Here you call the addOrder with basket. -->
              <button ng-click="addOrder(basket)">Add Order</button>
            </div>
            <hr>
          </ng-form>
          <!-- Here you call the addBasket with data. .-->
          <button ng-click="addBasket(data)">Add Basket</button>
        </div> 
    
      </form>
    </div> 

    Parte del controlador :

    var app = angular.module('app', []);
    
    app.controller('myController', function($scope, $http) {
      $scope.typistData = [];
      $scope.typistData.push({
        baskets: [{
          orders:[]
        }]
      });
    
      /* This is wrong, because it doesn't add a basket, instead it 
         another typist's details.
      $scope.addBasket = function() {
        $scope.typistData.push({
         baskets: [{
            orders:[] 
          }]
        });
         Correct way of adding it is to use the passed in reference to the
         data of a particular typist, and add a basket to its baskets.
      */
      $scope.addBasket = function(typist) {
        //Adding a basket to the typist's baskets, and you want the 
        //basket to contain an empty orders array initially right.
        typist.baskets.push({
          orders:[] 
        });
      };
    
      //To add an order to one of the basket of the baskets of a 
      //particular typist.
      $scope.addOrder = function(typistBasket) {
        typistBasket.orders.push({
          //Whatever you want the order to have.
        });
      };
    });

Dejar respuesta

Please enter your comment!
Please enter your name here