2016-04-16 7 views
2

ウェブ版のウェブ版とモバイル版のコンポーネントを再利用したいと思います。ウェブサイトは大きく異なっているため、反応性の高いデザインは実現不可能です。Angular2 WebとMobile TemplateURL

理想的には、画面の解像度に基づいて複数のtemplateUrlを提供する方法がありますが、このようなものは存在しません。

例:

@Component({ 
    selector: 'multiplatform-component', 
    templateUrl-sm: 'app/sm.html', 
    templateUrl-md: 'app/md.html', 
}) 

これにアプローチする最良の方法は何ですか?

+0

を/ issues/1239)。だから、答えを尊重して、私はあなたにこれを今実装するにはあまりにも多くの時間をかけてはいけません**。 – drewmoore

答えて

2

あなたはtemplateURLの解決にグローバル関数を作成することができます。[ここでの問題を参照してください](https://github.com/angular/angular、将来的にはこの機能のためのプラットフォームのサポートがあるように起こって

function getTemplateURL(url:string){ /* check browser, etc. */ }; 

@Component({ 
    selector: 'multiplatform-component', 
    templateUrl: getTemplateURL('app/sm.html') 
}) 
+0

これはうまくいかないようです。 'エラーでエラーが発生しました。シンボル値を静的に解決しました。エクスポートされていない関数への参照(元の.tsファイルの位置6:10) ' – Yathi

1

コンポーネントの再利用可能な部分は通常、そのクラスに属します。

あなたのさまざまなコンポーネントが継承することを、再利用可能なクラスを作成することができます。

export class ReusableClass{ 
} 

@Component({ 
    selector: 'platform1', 
    templateUrl: 'platform1.html', 
}) 
export class Platform1 extends ReusableClass{ 
} 

@Component({ 
    selector: 'platform2', 
    templateUrl: 'platform2.html', 
}) 
export class Platform2 extends ReusableClass{ 
} 

すべてReusableClassのメソッドとプロパティは、Platform1Platform2コンポーネントへのアクセスである可能性があります。

セレクタとテンプレートのみが異なります。

関連する問題