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