ModalService $ on& $广播多个实例

时间:2018-01-01 14:30:08

标签: angularjs angularjs-scope angular-broadcast

这些是同一角度控制器中的方法。

问题是每n次点击就会调用$ on。所以,如果这是我第三次点击显示弹出窗口。 $ on将运行3次,$ broadcast将播放一次。

我正试图杀死$ scope,但它没有用。看起来控制器(也在对话框中初始化,不会被破坏。

   ModalService.showModal({
                templateUrl: "ProductPopup.html",
                controller: "ShopActionDialogController",
                inputs: {
                    CurrentProduct: response.data[0]
                }
            }).then(function (modal) {
                 modal.element.modal();
                 args = {};
                 $rootScope.$broadcast('init', args);
              //  $rootScope.$broadcast('init', args);
                modal.element.on('hidden.bs.modal', function (e) {
                  //  modal.element.remove();
                });
                modal.close.then(function (result) {
                    //modal.element.remove();
                    //ModalService.closeModals();

                });
            });

        });

    }

var initListener = $scope.$on('init', function (event,args) {
        if (!$scope.initiated) {

            $scope.Amount = args.Amount;
            $scope.InitAmount = args.Amount;
            $scope.ProductId = args.ProductId;
            $scope.ProductVariantId = args.ProductVariantId;
            $scope.OrderLineId = args.OrderLineId;

            switch (args.Action)
            {
                case 'BuyImmediate':
                    $scope.AddToCart();
                    break;
            }
        }
    });

    $scope.$on('$destroy', function () {
        console.log("killing this scope");
        initListener();
    });

有什么想法吗?

0 个答案:

没有答案