2014-11-28 2 views
0

Мы можем добавлять новые элементы в массив продуктов и сохранять эти значения с помощью NGStorage. Мы можем переключаться между маршрутами, и новые элементы сохраняются, как и ожидалось, но если мы вернемся и добавим другой новый элемент очищает все предыдущие элементы. Если кто-то может понять, что мы делаем неправильно, укажите это. Спасибо.AngularJS, Сохраненные элементы очищаются после добавления нового элемента

$scope.Products = []; 
    $scope.logItem = function($index,brandName,partNumber,productName,amount){ 
     alert("Item Logged"); 
     $scope.newItem = { 
     Brand: brandName, 
     Part: partNumber, 
     Product: productName, 
     Amount: amount 
     }; 
     $scope.Products.push($scope.newItem); 
     $scope.$storage.Products = $scope.Products; 
    } 

ответ

0

Когда контроллер получает initilized, вам необходимо повторно назначить $ хранения продуктов до $ scope.products

//$scope.Products = []; 
    $scope.Products = $scope.$storage.Products == undefined ? [] : $scope.$storage.Products; // Not exactly: like that when the controller gets initilized, you need to re-assign the $storage products to $scope.products 
    $scope.logItem = function($index,brandName,partNumber,productName,amount){ 
     alert("Item Logged"); 
     $scope.newItem = { 
     Brand: brandName, 
     Part: partNumber, 
     Product: productName, 
     Amount: amount 
     }; 
     $scope.Products.push($scope.newItem); 
     $scope.$storage.Products = $scope.Products; 
    } 
+0

Работал, большое вам спасибо за всю вашу помощь Dinesh :) –

+0

Вы всегда рады. –

0

Ну, вы передаете ссылку на ваш массив продуктов на свое хранилище, которое в свою очередь сохраняет. Но здесь вы очищаете свой массив и, таким образом, свое хранилище с ссылкой:

$ scope.Products = [];

+0

Если удалить $ scope.Products = []; то ни одна из этих рабочих, никаких предложений? –

+0

Что именно не работает? Вы получаете ошибки JS? Вы инициализировали $ scope.Products, например, в вашем контроллере? Я бы переместил этот $ scope.Products = []; к методу init. – Carsten

+0

В настоящее время, когда я добавляю новые вопросы JSON выглядит следующим образом { "Продукты": [ { "Марка": "Черный и Decker", "часть": "ALM G123", "Продукт": " ALM GP006 Обрезка Cut® триммер головы и линии», "Сумма": "10" }, { "Марка": "Черный и Decker", "Часть": "АЛМ M356", "Продукт": «ALM MC114 Spool and line», «Сумма»: «20» } ] ] Если я удалю $ scope.Products = []; Тогда ничего не уходит в мой JSON –

Смежные вопросы