私は、いくつかの異なるWebプロジェクトで使用する共有されたAngularコンポーネントのライブラリを作成しようとしています。共有コンポーネントライブラリに加えて、これらのコンポーネントをすべて含んでいるWebプロジェクトを作成しようとしています。それらのコンポーネントの使用方法に関するコード例があります。同様の質問に関連する他のクエリから分かるようにAngular *コンポーネントのHTMLテンプレートを取得する方法はありますか?
、<pre>
または<code>
タグ内のWebページにHTMLコードを表示するために、これらのHTMLスニペットの特定の側面が>
にする必要がある>
HTMLエンコードされた文字(すなわちを持っている必要があります<
が<
である必要があります)。これらの変更を手作業でソースコードから行う必要は、非常に面倒で退屈なものになります。
私は、特定のコンポーネントのHTMLテンプレートを読み、必要なテキストをいくつか置き換えて、その値をビューに表示するプロパティに設定する方法を見つけたいと思います。私はthisのように、答えが不十分で違う他の類似の質問を見たことがあります。
次のように私はfoo.component.ts
をお持ちの場合:本質的には
import { Component } from '@angular/core';
import { FooComponent } from './foo.component';
@Component({
selector: 'display-foo',
template: `
<pre class="example-code">
<code>
{{encodedExampleHtml}}
</code>
</pre>
<foo>
<div top-content>TOP</div>
<div bottom-content>BOTTOM</div>
</foo>
`
})
export class DisplayFooComponent {
encodedExampleHtml: string;
constructor() {
this.encodedExampleHtml = new FooComponent().template.replace('<', '<').replace('>', '>');
}
}
が、これは次の開発者のためのUIにテンプレートを置く次のように
import { Component } from '@angular/core';
@Component({
selector: 'foo',
template: `
<div class="foo">
<div class="content">
<ng-content select="[top-content]"></ng-content>
</div>
<div class="extra content">
<ng-content select="[bottom-content]"></ng-content>
</div>
</div>
`
})
export class FooComponent {}
は、私が何かをdisplay-foo.component.ts
を作成したいですそのタイプのコンポーネントの実際のレンダリングされた要素をどのように活用するかを理解し、実際のアプリケーションで使用されたときにそのコンポーネントがどのように見えるかを表示します。
作業の仕方が分からない部分はこの行ですthis.encodedExampleHtml = new FooComponent().template.replace('<', '<').replace('>', '>');
角型コンポーネントオブジェクトにはテンプレートプロパティがなく、私が見る限りでは何をしたいのですかそのコンポーネントのテンプレートを公開するプロパティはありません。
Angularフレームワークを使用してコンポーネントのHTMLテンプレートを取得する方法はありますか?もう一度式を置き換えて補間されたコンテンツは必要ありませんが、デコレータのtemplate
プロパティまたはtemplateUrl
プロパティのいずれかによって要素に関連付けられた実際の生のHTMLテンプレートは必要ですか?
AOTを使用しますか? – yurzui
@yurzuiはい、私はそれを計画していた – peinearydevelopment