メインのブートストラップ アプリケーションとは別に、初期化してレンダリングしたいコンポーネントがあります。
たとえば、反応では、次のようなことができます。
var div = document.createElement('div');
React.render(React.createElement(MyComponent, { }), div);
コンポーネントを使用して、Angular 2 で同様のことができるようにしたいと考えています。
また、角度的に言えば、これらのコンポーネントはディレクティブと見なされることもあります。このシナリオでディレクティブまたはコンポーネントの用語を使用する必要があるかどうかはよくわかりません。
これが私が今やっているコードの例です(可能な限り削減しようとしました):
export interface Tweet {
id: number;
text: string;
}
@Component({
selector: 'tweet',
template: `
{{tweet.text}}
`,
inputs: ['tweet']
})
export class TweetComponent {
public tweet: Tweet;
}
// This works when in the context of another component's template like:
<tweet [tweet]="tweet"></tweet>
// code to manually initialize
var tweetEl = document.createElement('tweet');
var body = document.querySelector('body');
body.appendChild(tweetEl);
var comp = new TweetComponent();
comp.tweet = tweet;
bootstrap(TweetComponent, [provide(TweetComponent, {useValue: comp})]);
現在、次のエラーが表示されています。
例外: TypeError: TweetComponent の {{tweet.text}} で undefined のプロパティ 'text' を読み取れません]