Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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 如何从另一个angularjs刷新一个控制器的计数器值_Javascript_Angularjs_Angularjs Scope_Angularjs Service_Angularjs Controller - Fatal编程技术网

Javascript 如何从另一个angularjs刷新一个控制器的计数器值

Javascript 如何从另一个angularjs刷新一个控制器的计数器值,javascript,angularjs,angularjs-scope,angularjs-service,angularjs-controller,Javascript,Angularjs,Angularjs Scope,Angularjs Service,Angularjs Controller,我有一个购物车计数器,它位于页眉控制器中。以及图像视图控制器中的“添加到购物车”按钮。我想从图像视图控制器设置购物车计数器。因此,每次单击“添加到购物车”时,它都会更改购物车的值 标题控制器: decorpotCtrls.controller('DecorpotCtrl', [ '$scope', '$routeParams', 'cart', function($scope, $routeParams, cart) { $scope.cartCounter = car

我有一个购物车计数器,它位于页眉控制器中。以及图像视图控制器中的“添加到购物车”按钮。我想从图像视图控制器设置购物车计数器。因此,每次单击“添加到购物车”时,它都会更改购物车的值

标题控制器:

 decorpotCtrls.controller('DecorpotCtrl', [ '$scope', '$routeParams', 'cart',
    function($scope, $routeParams, cart) {
        $scope.cartCounter = cart.getCartCounter();
    } ]);
图像控制器:-

  decorpotCtrls.controller('ImageViewController', [
    '$scope',
    '$routeParams',
    'imageView',
    '$auth',
    'cart',
    function($scope, $routeParams, imageView, $auth, cart) {

    $scope.addToCart = function(groupid) {
            console.log($auth.isAuthenticated());
            return cart.addToCart(groupid);

        };

    } ]);
购物车Html:-

  <i class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></i> Cart({{cartCounter}})

在控制器中使用$rootScope。所有$scope都是$rootScope的“child”

decorpotCtrls.controller('ImageViewController', [
'$rootScope',
'$scope',
'$routeParams',
'imageView',
'$auth',
'cart',
function($scope,$rootScope, $routeParams, imageView, $auth, cart) {

$scope.addToCart = function(groupid) {
        $rootScope.counter++;
        console.log($auth.isAuthenticated());
        return cart.addToCart(groupid);

    };

} ]);

您可以做一件事,将方法引用设置为
$scope.cartCounter
如下

$scope.cartCounter = cart.getCartCounter;
然后在HTML上,您可以调用该方法,如
cartCounter()
,该方法将在每个摘要上进行计算

<i class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></i> 
Cart({{cartCounter()}})

购物车({{cartCounter()}})

但是如果我说addToCart(),这会刷新计数吗???@user2696466是的,会。你为什么不试试?太棒了。。。它起作用了。仍在学习$scope的魔法。谢谢Pankaj@user2696466很高兴来到这里..谢谢:)@jbnite感谢你的帮助,兄弟评论..非常感谢。快乐编码…)
$scope.cartCounter = cart.getCartCounter;
<i class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></i> 
Cart({{cartCounter()}})