2017-07-03 9 views
6

Próbuję użyć mojej dyrektywy ng2 w angularjs, ale nie mogę go uruchomić. Widziałem, że downgradeComponent używa ograniczenia: 'E' dla dyrektywy angularjs, co oznacza, że ​​jest ograniczony do elementów. Ktoś wie, jak poradzić sobie z tym problemem?Downgarde angle 2 dyrektywy lub co najmniej jest w stanie go używać w kątowym

Próbowałem po prostu używać mojej dyrektywy w kanciastym js, i to nie działało. Używam UpgradeModule do hybrydowego bootstraping.

To jest moja dyrektywa.

@Directive({ 
    selector: '[test-directive]' 
}) 
export class TestDirective implements OnInit { 
    @Input("test-directive") testDirective: string; 

    constructor(private el: ElementRef, private renderer: Renderer) { 

    } 

    ngOnInit() { 
     console.log("color is = " + this.testDirective); 
     this.renderer.setElementStyle(this.el.nativeElement, 'background-color', this.testDirective); 
    } 
} 

Próbowałem przy użyciu w angularjs jako atrybut (próbuje go używać jako [test-dyrektywa] i jako test-dyrektywą.

Am I brakuje czegoś tutaj? Bo Szukałem w internecie i nie znaleźć wiele informacji dotyczących tego problemu.

+0

Oto mój przykład z tutoriala kątowego https://plnkr.co/edit/jE4FTbnEWTuuYasXNvEX?p=preview https://angular.io/guide/upgrade#transcluding-angular-content-into-angularjs-component-directives – yurzui

+0

Czy możesz odtworzyć swój problem w plunker? – yurzui

+0

W twoim przykładzie (yurzui) nie widzę użycia atrybutu, spróbuję odtworzyć go na twoim przykładzie. –

Odpowiedz

0

Jak widzę, w upgradeAdapter daje tylko downgradeNg2Provider i downgradeNg2Component i rzeczywiście, downgradeNg2Component zawsze używa „E”. (https://github.com/angular/angular/blob/master/packages/upgrade/src/common/downgrade_component.ts#L70)

Spójrz na Downgrade NG2 Directive to AngularJS. Nie testowałem tego, ale autor tego pytania mówi, że nie ma potrzeby stosowania dyrektywy downgrade i można go używać po wyjęciu z pudełka.

+0

Tak, widziałem to i próbowałem po prostu użyć mojej dyrektywy kątowej 2 w angular.js, to nie zadziałało. ale czy wiesz, co oznacza PRAISER? "Po prostu dodaj to jako deklarację do swojej aplikacji i będzie działać"? która aplikacja kątowa 2 lub angular.js? –

Powiązane problemy