在typescript中编写复杂的AngularJS指令

时间:2015-09-11 11:56:17

标签: javascript angularjs typescript angular-directive

我找到了以下指令来从复选框中选择对象:
https://vitalets.github.io/checklist-model/

我的问题是我们正在使用打字稿而且我完全不知道如何在打字稿中编写给定的指令。

我知道基本风格如下

module myModule {
    'use strict';
    export function checklistModel(): ng.IDirective {
        return {...};
   };
};

我的问题是我需要注入$ parse和$ compile服务。我试图将指令中的代码放在链接中,但我不知道如何使指令工作。

有人可以给我一个关于如何注入服务以及给定代码的哪一部分进入链接和/或编译的提示?

1 个答案:

答案 0 :(得分:0)

TypeScript没有关于依赖注入的特定问题。只需将要注入的依赖项定义为checklistModel的参数即可。如果您想确保在缩小javascript文件后可以解析依赖关系,您可以通过$inject属性另外定义依赖关系(这也适用于普通的js):

module myModule {
'use strict';

    checklistModel.$inject = ['$parse', '$compile'];

    export function checklistModel($parse, $compile): ng.IDirective {
        return {
             link: function() { ... }
        };
   };

   angular.module('myModule').directive('checklistModel', checklistModel);
};

其他一切都是正常的角色。 (除此之外,IDirective类型将告诉您返回值应该如何)

我希望这会有所帮助。