实例元素参数传递到角度指令的链接函数中的对象类型是什么



我正在使用带有角度的打字稿并尝试创建自定义指令。 我正在尝试提供所有参数类型,但不确定通过 $element 参数传递的对象是什么类型。 是JQuery类型吗? 还是某种元素类型?

在指令代码中,我想将$element与 d3 选择器一起使用。 (即 d3.select($element)) 目前 d3 选择语句不起作用,因为 $element 类型不是 d3 期望的类型。 (我也在为 d3 使用打字稿界面。

var directiveDefinitionObject : ng.IDirective = {
        restrict: 'E',
        replace: false,
        scope: { data: '=chartData' },
        link: ($scope: ICustomScope, $element: <WHAT_TYPE?>) => {
             d3.select($element);  // d3.select(node)
        }
    };
指令

link函数中的$element具有ng.IAugmentedJQuery类型。如果你包含jQuery,那么你将在$element上得到jQuery函数,没有jQuery,那么Angular将提供jqLite。有关更多信息,请参阅此处。

ng.IDirective中的link函数定义为:

link?: (scope: IScope,
        instanceElement: IAugmentedJQuery,
        instanceAttributes: IAttributes,
        controller: any,
        transclude: ITranscludeFunction
       ) => void;

最新更新