2017-10-07 14 views
0

角度1.5のアプリケーションで使用する角度2のディレクティブをダウングレードしようとしています。 Angular 2コンポーネントはダウングレードできますが、ディレクティブはダウングレードできません。私は角1つのアプリでディレクティブを使用しようとすると角度2のダウングレードが動作しない

import { Directive, ElementRef, Input, Renderer } from '@angular/core'; 
    import { UpgradeComponent } from '@angular/upgrade/static'; 

    @Directive({ 
     selector: 'myDir' 
    }) 
    export class MyDirective { 
     constructor(public el: ElementRef, public renderer: Renderer) { 
      console.log('constructor'); 
     } 
     ngOnInit() { 
      console.log("onInit"); 
     } 
    } 

    angular.module(myapp) 
      .directive('myDir', downgradeComponent({ component: MyDirective })); 

、それはコンストラクタまたはngOnInitを発射いません。

これは私がそれを使用している方法です。

<myDir></myDir> 

答えて

1

あなたは、私たちはとてもきれいではない方法でそれを解決し、私たちは同様の問題で苦労した角度1に角度2から@Directiveをダウングレードすることはできません。私たちは、私たちが

@Component({ 
     selector: 'myDir', 
     template: '<ng-content></ng-content>' 
    }) 

を持っているでしょう(私たちはそれをリファクタリング、一度すべてが角2であり、一時的な解決策)

をテンプレートとしてNG-コンテンツに@Componentをダウングレードし、それを持つ要素をラップしていますこれが我々が適用する方法です

<myDir><someOtherElementsWhereDirectiveShouldBeApplied></myDir> 
+0

ありがとうございます!あなたのアプローチは属性ディレクティブでも機能しますか?我々が必要とする場合、

user636525

+0

は不幸ではありません、角度ダウングレードは、 – pezetem

関連する問題