2016-07-05 7 views
1

内部attrに条件付きそれでは、私は1つのディレクティブ「myGrid」を持っており、それには、私はこのような何かを持っているテンプレートだとしましょう、 をディレクティブを使用します。私は別のディレクティブ内で条件付きディレクティブを使用して問題を抱えているディレクティブのテンプレート

<table my-grid-resizable>...</table> 

<my-grid resizable="true" /> 

しかし、私はmyGridディレクティブのテンプレート内NG-IFを使用したくない:

と私は、このようmyGridディレクティブを使用する場合にのみmyGridResizableディレクティブを使用します。

if (scope.resizable) { 
      angular.element(element).find('table').attr('my-grid-resizable', ''); } 

が、同様に支援しis'tディレクティブを再コンパイル、属性が追加されて働いていないが、ディレクティブが動作していない:

は、私はこれを試してみました。あなただけの属性を設定している。この

答えて

0

を解決する上で助けを

おかげで、しかし、これはDOMがそれ自身に消化されることを意味するものではありません。 DOMが更新されない理由は、モデルやバインディングを更新していないためです。あなたはDOMを変更するだけです。

ですから、手動のようなあなたの要素をコンパイルする必要があるつもりだ、

まず、(該当する方)あなたのディレクティブまたはコントローラに$compileを注入

その後の操作を行います。

if (scope.resizable) { 
    angular.element(element).find('table').attr('draco-grid-dynamic-table', ''); 
    var html = angular.element(element).find('table').html(); 
    var compiledHtml = $compile(html)(scope); 
    angular.element(element).find('table').html(compiledHtml); 
} 

このしかし、作品は、しかし、角度の方法ではなく、非常に落胆しています。 ng-if構造体を使用しない理由がわかりません。それは物事をする角度のある方法です。

+0

私はあまりにも動作していない、私は前にコンパイルしようとした – Michal

+0

そして、コードを複製しないためにng-ifを使用したくない – Michal

+0

@Michalええ、あなたはコードを複製したくありません。しかし、コードの多く。 'ng-if'の中にあるものを別のテンプレートファイルにラップし、' ng-include'を 'ng-if'の中に入れることができます – Chanthu

関連する問題