angularjs 中 $scope 变量的未定义错误

undifined error of $scope variable in angularjs

我正在使用 angularjs 开发电子商务网站 asp.net mvc。我在我的 page.I 中的一个 $scope 中遇到了一些问题,在我的控制器中定义了一个 $scope.items 数组,并试图从 cookie 中获取该数组中的值。 这是代码

app.controller('checkoutController', ['$scope', 'productService', '$cookies', '$cookieStore', '$location', 'sharedService', '$rootScope', 'customerService', function ($scope, productService, $cookies, $cookieStore, $location, sharedService, $rootScope, customerService) {
    $scope.items = [];

    $scope.customer = {};
    $scope.customer.FirstName = "";
    $scope.customer.LastName = "";
    $scope.customer.Email = "";
    $scope.customer.Password = "";
    $scope.customer.CPassword = "";
    $scope.customer.Address1 = "";
    $scope.customer.Address2 = "";
    $scope.customer.ZipCode = "";
    $scope.customer.Country = "";
    $scope.customer.State = "";
    $scope.customer.City = "";
    $scope.customer.MobileNo = "";

    $scope.logDetails = {};
    $scope.logDetails.LogEmail = "";
    $scope.logDetails.LogPassword = "";
    $scope.customer.Roleid = 1; 
   $scope.items = $cookies.StyleStoreCart;
}

它给我错误,$scope.items 未定义。但它已经定义

请专家告诉我哪里错了?

这里是直播网站url。请尝试结帐并在结帐页面的控制台中查看错误。

http://stylesstore.com/Home/Products

这是我在产品页面的应用程序中向 cookie 插入数据的方式

var item = new cartItem(Picture1, ProductName, UnitPrice);
        $scope.items.push(item); 
        $cookies.StyleStoreCart = $scope.items 
        $scope.Itemcount = $scope.Itemcount + 1

在我的结帐页面中,我得到了这样的 cookie 值

 $scope.items = $cookies.StyleStoreCart;

这是因为 items 在您访问之前已分配给 undefined

在你的第一行代码中,你将items初始化为一个数组,但是 $cookieStore.get('StyleStoreCart')undefined,然后$scope.items变成了undefined作业。

更新

Home 页面成功将 StyleStoreCart 存储在 cookie 中,但是如果您使用开发人员工具查看此 cookie 项(在 Chrome 中,它是 chrome:/ /settings/cookies),你会看到这个 cookie 的路径是 /home。然后你导航到http://stylesstore.com/Cart/CheckOut,它的路径是/cart,那可能是我们无法从cookies中获取StyleStoreCart

正确的解决方案是,如下存储 cookie

$cookies.put('StyleStoreCart', value, {path: "/"});