AngularJS:'IAttributes'类型中不存在属性'ngEnter'

时间:2017-03-15 10:43:02

标签: javascript angularjs typescript angularjs-directive webstorm

我正在使用Typescript并将角色的DefinitelyTyped定义从1.3迁移到1.6.2会导致MainModule.ts中出现以下错误:

Error:(14, 43) TS2339:Property 'ngEnter' does not exist on type 'IAttributes'.

触发编译器错误的代码是定义angularjs模块:

angular.module('myApp', ['ngRoute', 'ui.bootstrap', 'ui.bootstrap.modal', 'smart-table'])
    .service('appService', AppService)
    .controller('MainCtrl', MainCtrl)
    .controller('uploadTSCtrl', UploadTSCtrl)
    .controller('inputCtrl', InputCtrl)
    .controller('reportCtrl', ReportCtrl)
    .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); // <<<<<<<<<<<<< here
                    });
                    event.preventDefault();
                }
            });
        };
    })

我找不到迁移指南或类似的从1.x到1.6.2的任何内容,并且不知道如何解决它..

2 个答案:

答案 0 :(得分:1)

我也遇到过这样的问题,只是做了

update

OR

scope.$eval(attrs['ngEnter']);

避免这个问题。

答案 1 :(得分:0)

为了完整起见,我还发现了另一种使用预先构建的指令的方法,该指令可以插入以用于此OP目的:typescript-key-enter-directive