Angular 1.5 を使用して、一般的な「オーバーレイ」コンポーネントを使用して、モーダル内に他のコンポーネントを表示したいと考えています。オーバーレイ内でレンダリングされる他のコンポーネントを渡したいと思います。
コントローラーで $compile を使用できると思っていましたが、コンポーネントがレンダリングされません。
私のコントローラーで:
ctrl.appendComponent = function(component_type) {
ctrl.$content.empty(); // this is the overlay element
var component = '<' + component_type + '></' + component_type + '>';
ctrl.$content.append($compile(component)($scope));
};
「foo」など、渡したいコンポーネントを作成し、DOM で空の要素のみを取得しました。
<foo></foo>
ただし、foo コンポーネントのテンプレートには、次のものがあります。
<h1>header</h1>
<p>body</p>
そして、次のことが期待されます。
<foo>
<h1>header</h1>
<p>body</p>
</foo>