-1

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>
4

1 に答える 1

1

これは例ですが、同じことをしているように見えます。コードを単純化することをお勧めします。何かが思ったとおりに返されない場合があります。

                link: function(scope, iElem, tAttrs){
                            var html = "<div>hello</div>";

                            var content = $compile(html)(scope);
                            iElem.append(content);
                }
于 2016-09-13T23:29:03.370 に答える