【问题标题】:using cookies in angularjs 1.4.2在 angularjs 1.4.2 中使用 cookie
【发布时间】:2015-08-08 15:55:35
【问题描述】:

我正在做一个简单的“添加到购物车”系统。我希望我的篮子里的物品不会消失,所以我正在尝试使用 angularjs cookie。不用添加cookie项,添加删除就可以了。

var app = angular.module('myApp', ['ui.bootstrap','ngCookies']);
app.controller('menusCtrl', ['$cookies',function($scope, $http,$cookies) {
   $http.get("getContent.php").success(function (response) {$scope.items = response.menus;});
   $scope.basketlist = [];
   $scope.updateCart = function (index) {
    var item = $scope.items[index];
    $scope.basketlist.push({quantity: 1, price: item.menu_price,no:item.menu_no,image:item.menu_img});
    $cookies.put("basketlist",$scope.basketlist);
   }
    $scope.remove = function(index) {
      var itemtodelete = $scope.basketlist.indexOf(index);
        $scope.basketlist.splice(index, 1);
    }
}]);

我插入 /angularjs/1.4.2/ 和 /1.4.2/angular-cookies.js

我收到了这些错误:

TypeError: Cannot read property 'get' of undefined
at new <anonymous> (app.js:4)
at Object.e [as invoke] (angular.js:4452)
at $get.P.instance (angular.js:9001)
at S (angular.js:8111)
at g (angular.js:7543)
at g (angular.js:7547)
at angular.js:7418
at angular.js:1635
at n.$get.n.$eval (angular.js:15848)
at n.$get.n.$apply (angular.js:15947)(anonymous function) @ angular.js:12332$get @ angular.js:9111$get.n.$apply @ angular.js:15949(anonymous function) @ angular.js:1633e @ angular.js:4452d @ angular.js:1631Ac @ angular.js:1651Zd @ angular.js:1545(anonymous function) @ angular.js:28361m.Callbacks.j @ jquery.js:3148m.Callbacks.k.fireWith @ jquery.js:3260m.extend.ready @ jquery.js:3472J @ jquery.js:3503

【问题讨论】:

  • 你必须注入 $http。
  • 我必须在哪里注入它
  • 当我像这样更改第二行时 app.controller('menusCtrl', ['$scope','$http','$cookies',function($scope, $http, $cookies) TypeError:无法读取未定义的属性“推送”
  • 你能为我们提供一个 jsfiddle 什么的吗?
  • plunker 这是我的代码示例,它在开始时工作正常,但是当我尝试获取 cookie 时它崩溃

标签: javascript angularjs cookies


【解决方案1】:
$scope.mybasket = JSON.parse($cookies.get('mybasket'));
$cookies.put('mybasket',JSON.stringify($scope.mybasket));

我使用 JSON.stringify 和 JSON.parse 并且它有效。

【讨论】:

    【解决方案2】:

    将 $scope 和 $http 添加到控制器的参数中:

    app.controller('menusCtrl', ['$scope', '$http','$cookies',function($scope, $http,$cookies) {
    ...
    }])
    

    【讨论】:

      猜你喜欢
      • 2015-05-21
      • 2017-08-05
      • 2016-08-22
      • 1970-01-01
      • 2016-06-15
      • 2015-07-23
      • 2016-04-07
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多