指令在IE11中不起作用

时间:2017-10-31 09:10:08

标签: angularjs angular-directive

我在IE11中遇到了这个指令的一些麻烦(注意:在Edge,Chrome和Firefox上,一切正常)。

如果我在返回对象之前发出警报,我在IE中没有它,我在其他浏览器中得到了两次(但无论如何都可以)。

Angular版本是1.5.3

.directive("cartBtnQty", function($rootScope) {
return {
    restrict: "E",
    scope :{
        articleQuantity: '@', 
        lineNumber: '@'
    },
    replace: true,
    link: function(scope, elem, attr, form) {
        alert('directive');
        elem.bind('click keydown', function (e) {

            $operator = null;

            // click button +/-
            $operator = angular.element(e.target).data('operator')
            if($operator == '+')
                scope.articleQuantity = parseInt(scope.articleQuantity)+1;
            else if($operator == '-' && scope.articleQuantity > 1)
                scope.articleQuantity = parseInt(scope.articleQuantity)-1;

            // limitation pour quantité négative
            if(scope.articleQuantity < 1)
                scope.articleQuantity = parseInt(1);


            if((e.type == 'click' && ($operator == '-' || $operator == '+')) || e.type == 'keydown'){
                $rootScope.cartQtyItem({articleQuantity:scope.articleQuantity, lineNumber:scope.lineNumber});
                return true;
            }
        });
    },

    template: '<div class="ui right mini action input">'+
                '<form><input type="text" ng-model="articleQuantity" ng-init="articleQuantity=articleQuantity" class="w30"/>'+
                '<div class="ui icon buttons mini">'+
                '<button class="ui button" data-operator="+"><i class="plus icon" data-operator="+"></i></button>'+
                '<button class="ui button grey" data-operator="-"><i class="minus icon" data-operator="-"></i></button>'+
                '</div></form></div>'
};

})

2 个答案:

答案 0 :(得分:0)

我看到两个问题:

  • 缺少变量声明(顺便说一句,你不应该使用$作为局部变量)var $operator = null
  • 尝试使用attr代替dataangular.element(e.target).attr('data-operator');
根据该指令,

警报应该在IE中正常工作。

https://plnkr.co/edit/WqsPQxgkwCLEPMnaEANx?p=preview

答案 1 :(得分:0)

Aleksey Solovey很好。我切换到一个合适的类,旧开发人员在DOM中添加一些isIe()函数。谢谢你们的时间。