Angular指令仅适用于ng前缀

时间:2014-10-14 13:49:34

标签: angularjs angularjs-directive

我有以下代码可以正常使用

指令

payrollWeb.directive('ngEnter', function() {
    return function(scope, element, attrs) {
        element.bind("keydown keypress", function(event) {
            if(event.which === 13) {
                scope.$apply(function(){
                    scope.$eval(attrs.ngEnter);
                });
                event.preventDefault();
            }
        });
    };
});

查看

<input type="password" ng-enter="login()" ng-model="autPass">

但我不想;因为不推荐,我想用ng前缀声明我的指令。但是,只要我将其改为任何其他内容,它就无法发挥作用。

前:

payrollWeb.directive('prEnter', function() {
    return function(scope, element, attrs) {
        element.bind("keydown keypress", function(event) {
            if(event.which === 13) {
                scope.$apply(function(){
                    scope.$eval(attrs.ngEnter);
                });
                event.preventDefault();
            }
        });
    };
});

<input type="password" pr-enter="login()" ng-model="autPass">

有任何线索吗?

的Ish

1 个答案:

答案 0 :(得分:2)

scope.$eval(attrs.ngEnter);

应该是:

scope.$eval(attrs.prEnter);