Angular提供程序在控制器中失去价值

时间:2016-10-27 07:27:09

标签: javascript angularjs

我花了更多的时间来承认试图解决这个问题,无论我尝试什么方法,我似乎都无法忍受。我在.peb.html文件中设置了一个变量和一个相应的角度模块。如下所示:

<script type="text/javascript">
    var globalVisit = {*visit*};
    var cart = {*cart*}
</script>

在角度模块中我有两个提供者定义如下。

buyModule.service('visit', ($window) => {
    return $window.visit;
});

buyModule.service('cart', ($window) => {
    return $window.cart;
});

和控制器定义如下:

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

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

1 个答案:

答案 0 :(得分:0)

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

// global variable outside angular
var variable1 = true;

var app = angular.module('myapp', []);

app.controller('MainCtrl', ['$scope', '$window', function($scope, $window) {
  $scope.variable1 = $window.variable1;
}]);