interface Directive {
    $$addStateInfo: ((arg0: any[]) => any);
    bindToController: boolean | {
        [boundProperty: string]: string;
    };
    compile: DirectiveCompileFn;
    controller: string | Injectable<T>;
    controllerAs: string;
    link: DirectiveLinkFn | DirectivePrePost;
    multiElement: boolean;
    priority: number;
    replace: boolean;
    require: string | string[] | {
        [controller: string]: string;
    };
    restrict: string;
    scope: boolean | {
        [boundProperty: string]: string;
    };
    template: string | ((tElement: JQLite, tAttrs: {}) => string);
    templateNamespace: string;
    templateUrl: string | ((tElement: JQLite, tAttrs: {}) => string);
    terminal: boolean;
    transclude: boolean | "element" | {
        [slot: string]: string;
    };
}

Properties

$$addStateInfo: ((arg0: any[]) => any)

Hidden properties added by router

bindToController: boolean | {
    [boundProperty: string]: string;
}

Bindings to controller.

Compile function for the directive.

controller: string | Injectable<T>

Controller constructor or name.

controllerAs: string

Controller alias.

Link function.

multiElement: boolean

Multi-element directive flag.

priority: number

Skip all directives on element

replace: boolean

Deprecated: Replace flag.

require: string | string[] | {
    [controller: string]: string;
}

Required controllers.

restrict: string

Restriction mode.

scope: boolean | {
    [boundProperty: string]: string;
}

Scope options.

template: string | ((tElement: JQLite, tAttrs: {}) => string)

HTML template.

templateNamespace: string

Template namespace.

templateUrl: string | ((tElement: JQLite, tAttrs: {}) => string)

HTML template URL.

terminal: boolean

Directive priority.

transclude: boolean | "element" | {
    [slot: string]: string;
}

Transclusion options.