如何在 angularjs 中从 cookie 中删除和编辑对象
How to remove and edit object from cookies in angularjs
我在angularjs中从$cookies中删除和编辑cookie对象时遇到问题。我想开一家商店,我正在使用 putObject 函数将产品添加到全局变量$cookies(我没有使用 put,因为我有多个参数)。我想添加功能以从商店中删除和编辑产品,并从cookie中删除和编辑一个对象。请帮帮我!
这是我的代码片段(我想从"产品"cookie中删除/编辑对象):
app.controller('Store', ['$scope', '$cookies', 'x2js', '$http',
function($scope, $cookies, x2js, $http){
this.products = $cookies.getObject('products');
if(!this.products) {
var self = this;
$http.get('assets/xml/products.xml').success(function(data) {
self.products = data.products.product;
for(var i = 0; i < self.products.length; i++) {
self.products[i].id = parseInt(self.products[i].id);
self.products[i].netto = self.products[i].netto + '.00';
self.products[i].tax = parseInt(self.products[i].tax);
self.products[i].brutto = parseFloat(self.products[i].brutto);
self.products[i].rating = parseInt(self.products[i].rating);
};
});
}
$scope.product = $cookies.getObject('product') || {};
$scope.$watch('product', function() {
$cookies.putObject('product', $scope.product);
}, true);
this.addProduct = function() {
if(this.countCategories() >= 2) {
if(this.validateForm()) {
var product = {
id: this.products.length + 1,
name: $scope.product.name,
code: $scope.product.code,
image: $scope.product.image,
netto: this.intToFloat($scope.product.netto, 2),
tax: $scope.product.tax,
brutto: this.calculatePriceBr(),
rating: parseInt(this.ratingChecked()),
category: this.categoryChecked(),
option: this.optionChecked(),
selected: $scope.product.selected
};
this.products.push(product);
$scope.product = {};
$cookies.putObject('products', this.products);
$('#product-add').modal('hide');
return true;
} else {
return;
}
} else {
return;
}
};
})();
希望这就是你要找的。
我根据您的代码(简化)进行了一些测试:
var app = angular.module('myApp', ['ngCookies']);
app.controller('Store', Store);
Store.$inject = ['$scope', '$cookies', '$http'];
function Store($scope, $cookies, $http) {
var vm = this;
vm.products = [];
vm.cart = [] ;
vm.inCookie =[];
$http.get('products.xml').success(function(data) {
vm.products = data;
for (var i = 0; i < vm.products.length; i++) {
vm.products[i].id = parseInt(vm.products[i].id);
vm.products[i].netto = vm.products[i].netto + '.00';
vm.products[i].tax = parseInt(vm.products[i].tax);
vm.products[i].brutto = parseFloat(vm.products[i].brutto);
vm.products[i].rating = parseInt(vm.products[i].rating);
};
});
this.addProduct = function(row) {
vm.cart.push(row);
$cookies.put('cart', JSON.stringify(vm.cart));
vm.inCookie = JSON.parse($cookies.get('cart'));
};
}
您可以在此处查看如何从 Cookie 中添加和检索数据。
在这个 plunkr 中,您可以看到它正在工作。
https://plnkr.co/edit/ew1ePjzbMxjAqtgx8hzq?p=preview
希望这有帮助。
问候!
相关文章:
- ACE编辑器正在删除模块,因为define是't一根绳子
- 如何从DOM中删除Aloha编辑器
- 如何删除包含内容可编辑跨度的整个跨度元素
- 如何从拼音编辑器中删除特殊字符
- 使用AJAX传递的数据编辑XML文件-正在删除XML数据
- 如何根据某些条件向可编辑的jquery数据表添加或删除按钮
- Rails Production-可以工作,但不能编辑/删除/创建记录
- 使部分内容可编辑,无法删除
- 如何使用jstree删除上下文菜单中的编辑选项
- X 可编辑:删除“.editable-unsaved”类
- 如何过滤对象内部深度堆叠的数据(并在之后编辑删除它)
- jTable条件显示隐藏基于数据所有者的编辑和删除按钮
- 表中的动态按钮用于使用Javascript(CodeIgniter)删除/编辑数据
- 如何隐藏剑道网格命令的编辑按钮或删除按钮
- php使用ajax生成html表,以应用用户操作,如删除、更新和编辑
- CodeMirror 删除编辑器实例
- 无法向我的程序添加删除/编辑功能
- 谷歌分析:从后台删除/编辑交易
- 删除编辑表元素
- 从SharePoint 2013列表中删除编辑或新建项目按钮