9

これに本当に苦労しています-私が考えることができるあらゆる方法を試しました。うまくいけば、誰かが助けることができます。

カスタム コントロールのアウトラインを作成するディレクティブがあります。カスタム コントロールの中心部分は、外側のディレクティブのスコープ変数の値に基づいて、さらに動的に生成されたディレクティブによって表されます。スコープ変数には、内部ディレクティブの名前が含まれています。私のページには複数の動的に生成された要素があり、すべて共通のレイアウトですが、内部コンテンツは異なるため、これを行っています。

つまり、私の外部ディレクティブの例:

<div data-inner="{{inner}}">
    <!-- div content here --->
<div {{inner}} />

{{inner}}追加のディレクティブの名前に設定されます。この場合はsearch. したがって、私のページは次のようになります。

<div data-inner="search">
    <!-- div content here --->
<div search />

下位のsearchdiv もそのディレクティブのコンテンツに置き換えられます。

何か案は?

UPDATEこれは私が抱えている問題を表す 基本的なjsFiddle です- 3番目のdivが表示されないことに注意してください。

4

2 に答える 2

14

ここでフィドルを作成しました。

これらはディレクティブです。

<script type="text/ng-template" id="one">
    <div class="one"></div>
</script>
<script type="text/ng-template" id="two">
     <div class="two"></div>
</script>

そして、ここで動的読み込みを行います

<div ng-repeat='template in inner' ng-include='template'></div>

これが役に立ち、目的を解決するかどうかを確認してください。各ディレクティブをテンプレートにしてから ng include を使用しています

于 2013-02-01T14:37:15.503 に答える
3

このフィドルを試してくださいhttp://jsfiddle.net/xpKwb/12/

ngSwitch を使用できます

<div ng-repeat='template in inner'>
    <div ng-switch on="template">
        <div ng-switch-when="one">
            <div class='one'></div>
        </div>
        <div ng-switch-when="two">
            <div class='two'></div>

        </div>
    </div>
于 2013-05-26T21:39:23.010 に答える