Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度提供程序在控制器中丢失值_Javascript_Angularjs - Fatal编程技术网

Javascript 角度提供程序在控制器中丢失值

Javascript 角度提供程序在控制器中丢失值,javascript,angularjs,Javascript,Angularjs,我花了比我想承认的更多的时间试图弄明白这一点,无论我尝试什么方法,我似乎都无法做到。我在.peb.html文件中设置了一个变量和相应的角度模块。如下图所示: <script type="text/javascript"> var globalVisit = {*visit*}; var cart = {*cart*} </script> 以及定义如下的控制器: buyModule.controller('BuyCtrl', ($window, $scop

我花了比我想承认的更多的时间试图弄明白这一点,无论我尝试什么方法,我似乎都无法做到。我在.peb.html文件中设置了一个变量和相应的角度模块。如下图所示:

<script type="text/javascript">
    var globalVisit = {*visit*};
    var cart = {*cart*}
</script>
以及定义如下的控制器:

buyModule.controller('BuyCtrl', ($window, $scope, visit, cart) => {
$scope.visit = visit;
$scope.cart = cart;
}));

文件还有很多内容,但与问题无关。我的问题是,虽然通过提供商购物车加载的访问似乎很好,但它在控制器中似乎被覆盖/丢失了它的值。我调试了语句,并在buyModule.service('cart',($window)中=>部分$window.cart有一个值集,但当我尝试单步通过控制器时,它就消失了。有人知道我在这里为正在进行访问的cart做了什么错误吗?这令人非常沮丧,因为据我所知,它们的处理方式完全相同,但结果不同。我使用的是angular 1.x。

嘿,你做的是正确的,请在初始化之前检查脚本是否已定义。 比如:

//角度外部的全局变量
var variable1=真;
var-app=angular.module('myapp',[]);
app.controller('MainCtrl',['$scope','$window',函数($scope,$window){
$scope.variable1=$window.variable1;
}]);

嘿,您的操作正确,请在初始化之前检查脚本是否已定义。 比如:

//角度外部的全局变量
var variable1=真;
var-app=angular.module('myapp',[]);
app.controller('MainCtrl',['$scope','$window',函数($scope,$window){
$scope.variable1=$window.variable1;
}]);

您是否向管理员正确注册了购物车服务。?这可能是一个问题。这可能是我缺少的,但如果我没有正确注册,我不确定如何注册?除非我缺少某些内容或注册不在文件范围内,否则它的注册方式似乎与访问服务的注册方式相同。我也应该说,有些如果我在peb.html文件中像var cart=[{id:{cart}}]那样创建一个数组,然后像cart[0].id那样访问它,那么这个问题是如何解决的。我很困惑这是如何工作的,但是如果你像这样使用
buyModule.factory($cart',($window)=>{
?查看您的代码,似乎没有必要使用
服务
,因为您正在从服务功能返回对象。您是否向控制器正确注册了购物车服务。?这可能是一个问题。这可能是我缺少的,但如果我没有正确注册,我不确定如何注册?似乎是注册除非我遗漏了什么或者注册在文件之外,否则我应该说,如果我在peb.html文件中创建一个数组,比如var cart=[{id:{cart}}],然后像cart[0]一样访问它,那么这个问题是可以解决的.id.我对它的工作原理感到非常困惑,但如果您使用
工厂
而不是像这样使用
buyModule.factory('cart',($window)=>{
?查看您的代码,似乎没有必要使用
服务
,因为您正在从服务函数返回对象。请参阅:
buyModule.controller('BuyCtrl', ($window, $scope, visit, cart) => {
$scope.visit = visit;
$scope.cart = cart;
}));