0

次の角度プラグインを使用してクエリを生成しています。ディレクティブを2回呼び出して同じスコープを共有しています

angular query builder

私は二度ディレクティブを使用する場合、私は取得しています問題があります。私は最初に使用すると、次々に別のものにも起こります。

<div class="container" ng-controller="QueryBuilderCtrl"> 
<h1>Angular.js Query Builder</h1> 

    <div class="alert alert-info"> 
     <strong>Example Output</strong><br> 
     <span ng-bind-html="output"></span> 
    </div> 

    <query-builder group="filter.group"></query-builder> 
    <query-builder group="filter.group"></query-builder> 
</div> 

これは、プラグインのインデックスページからのコードです。ここでは、querybuilderディレクティブを2度貼り付けてコピーします。しかし、同じスコープを共有しています。

この問題を解決する方法。

+1

これは、まったく同じデータ( 'filter.group')を渡していて、' filter'オブジェクトが参照渡しされたためです。つまり、第1の指令で行われた 'filter.group'のすべての変更は第2の指令に対して実際のものです。 –

+0

これを修正する方法。ディレクティブをボタンクリック時にランタイムに追加する必要があるためです。 –

+0

毎回 'filter.group'のコピーを渡すことができます。しかし、確認して確実なコントローラコードはありません。ディレクティブをランタイムに追加する必要があるため、 –

答えて

0

ディレクティブに異なるモデルを指定してみてください。あなたの場合、彼らは同じモデルを共有しています。

<div class="container" ng-controller="QueryBuilderCtrl"> 
<h1>Angular.js Query Builder</h1> 

    <div class="alert alert-info"> 
     <strong>Example Output</strong><br> 
     <span ng-bind-html="output"></span> 
    </div> 

    <query-builder group="filter.group"></query-builder> 
    <query-builder group="filter.anotherGroup"></query-builder> 
</div> 
+0

は実際には不可能です。 filter.groupはコントローラ内で固定されています。 –

+0

同じものに対してjsFiddleまたはplunkerを作成できますか? –

関連する問題