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: "/"});
我正在使用 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: "/"});