Как я могу помещать json object статей продуктов в textarea?

Я использую Угловой и Plugin ng-cart для тележки покупки; проблема состоит в том, что все работает хорошо, но я требую, чтобы статьи клались в textarea, чтобы сохранять в bd.

json, который он посылает:

{  
   "shipping":null,
   "tax":0,
   "taxRate":null,
   "subTotal":1318.52,
   "totalCost":1318.52,
   "items":[  
      {  
         "id":"4",
         "name":"Clasico Panini",
         "price":80,
         "quantity":13,
         "data":"2",
         "total":1040
      },
      {  
         "id":"2",
         "name":"Mixiote",
         "price":69.63,
         "quantity":4,
         "data":"2",
         "total":278.52
      }
   ]
}

У меня есть в настоящее время цикл for, что печатает мне в консоли статьи без проблемы.

introducir la descripción de la imagen aquí

Но когда я хочу напечатать это в textarea, кажется, что больше ничто не помещает последнюю статью больше ничто.

introducir la descripción de la imagen aquí

Уже я протестировал несколько методов, но я получаю тот же результат, и если я властвую прямо ngCart.getItems(); в textarea я получаю [object][object].

url plugin как ссылки: ngcart.snapjay.com/docs

1
задан 22.06.2016, 19:58
3 ответа

Он помнит, что содержание textarea - sГіlo string , и ты имеешь договоренность из статей тем, что ты должен объединять все используя mГ©todo join.

var productos = ngCart.getItems();
var i;
var results = [];
for (i= 0; i< productos.lenght; i++) {
    results.push('(' + productos[i]._quantity + 'x) Ordenes de: ' + 
                 productos[i]._name + ' :-: Precio unit:  

оставил Тебе demo

angular.module('app', [])
  .controller('MyCtrl', function($scope) {
    var productos = [{
      "id": "4",
      "name": "Clasico Panini",
      "price": 80,
      "quantity": 13,
      "data": "2",
      "total": 1040
    }, {
      "id": "2",
      "name": "Mixiote",
      "price": 69.63,
      "quantity": 4,
      "data": "2",
      "total": 278.52
    }];
    var i;
    var results = [];
    for (i = 0; i < productos.length; i++) {
      results.push('(' + productos[i].quantity + 'x) Ordenes de: ' + productos[i].name + ' :-: Precio unit:  
textarea {
  width: 100%
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
  <textarea ng-model="productos"></textarea>
</div>
+ productos[i].price); } // Unelos usando saltos de línea para que queden unos debajo de los otros $scope.productos = results.join('\r\n'); })
textarea {
  width: 100%
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
  <textarea ng-model="productos"></textarea>
</div>
+ productos[i]._price); } $scope.productos = results.join('\r\n');

оставил Тебе demo

angular.module('app', [])
  .controller('MyCtrl', function($scope) {
    var productos = [{
      "id": "4",
      "name": "Clasico Panini",
      "price": 80,
      "quantity": 13,
      "data": "2",
      "total": 1040
    }, {
      "id": "2",
      "name": "Mixiote",
      "price": 69.63,
      "quantity": 4,
      "data": "2",
      "total": 278.52
    }];
    var i;
    var results = [];
    for (i = 0; i < productos.length; i++) {
      results.push('(' + productos[i].quantity + 'x) Ordenes de: ' + productos[i].name + ' :-: Precio unit:  
textarea {
  width: 100%
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
  <textarea ng-model="productos"></textarea>
</div>
+ productos[i].price); } // Unelos usando saltos de línea para que queden unos debajo de los otros $scope.productos = results.join('\r\n'); })
textarea {
  width: 100%
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
  <textarea ng-model="productos"></textarea>
</div>
0
ответ дан 24.11.2019, 14:05
  • 1
    Он правилен уже с этим бросает статьи, спасибо он был большой помощи. – Rafael Robles 23.06.2016, 05:21

Что такой, если размещаешь ты $scope.productos = productos внутри if. А именно, немного как следующий cГіdigo:

for(...){
var producto = ...
$scope.productos = producto;
}

Остался в твое ожидание.

0
ответ дан 24.11.2019, 14:05
  • 1
    Привет, уже я поместил такой код и он продолжает меня печатая последнюю статью тележки, habr и # 225; какой-то способ, в котором они были бы приложены, или какая-то другая форма, в которой они могли бы выходить, не имеет значение, если это не textarea, но который было возможно посылать, когда клика в form и ловить их на сервере php посредством $ _POST [и #39; продукты и # 39;]? – Rafael Robles 23.06.2016, 04:39

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

То, что ты должен делать, он состоит в том, чтобы объявлять producto вне цикла и в каждом повторении прилагать твое представление string настоящего объекта. Таким образом:

let producto = '';
for(let key in productos) {
    let actual = productos[key];
    producto += /* aquí creas el string de 'actual' */;
}

// solo para ejemplo, asumiendo un ng-model="areaProductos"
$scope.areaProductos = producto;

Или также (поскольку это у тебя есть):

$scope.areaProductos += '\n' + producto;
0
ответ дан 24.11.2019, 14:05

Теги

Похожие вопросы