Add directives from directive in AngularJS

后端 未结 7 1701
庸人自扰
庸人自扰 2020-11-22 10:02

I\'m trying to build a directive that takes care of adding more directives to the element it is declared on. For example, I want to build a directive that t

7条回答
  •  深忆病人
    2020-11-22 10:26

    There was a change from 1.3.x to 1.4.x.

    In Angular 1.3.x this worked:

    var dir: ng.IDirective = {
        restrict: "A",
        require: ["select", "ngModel"],
        compile: compile,
    };
    
    function compile(tElement: ng.IAugmentedJQuery, tAttrs, transclude) {
        tElement.append("");
    
        return function postLink(scope: DirectiveScope, element: ng.IAugmentedJQuery, attributes: ng.IAttributes) {
            attributes["ngOptions"] = "a.ID as a.Bezeichnung for a in akademischetitel";
            scope.akademischetitel = AkademischerTitel.query();
        }
    }
    

    Now in Angular 1.4.x we have to do this:

    var dir: ng.IDirective = {
        restrict: "A",
        compile: compile,
        terminal: true,
        priority: 10,
    };
    
    function compile(tElement: ng.IAugmentedJQuery, tAttrs, transclude) {
        tElement.append("");
        tElement.removeAttr("tq-akademischer-titel-select");
        tElement.attr("ng-options", "a.ID as a.Bezeichnung for a in akademischetitel");
    
        return function postLink(scope: DirectiveScope, element: ng.IAugmentedJQuery, attributes: ng.IAttributes) {
    
            $compile(element)(scope);
            scope.akademischetitel = AkademischerTitel.query();
        }
    }
    

    (From the accepted answer: https://stackoverflow.com/a/19228302/605586 from Khanh TO).

提交回复
热议问题