2016-08-08 7 views
0

内部でコンパイルしていないディレクティブと私は電子商取引ソリューションを実装しています。AngularJSは、私がAngularJSで新たなんだブートストラップポップオーバー

私は、ユーザーがカートのサマリーを表示するために、カートのアイコンの上にカーソルを置くことができるようにしたいです。

enter image description here

そして私は角度によって<cart></cart>ディレクティブを書いて、data-html=true

<a href="javascript:" 
    data-toggle="popover" 
    data-trigger="manual" 
    data-placement="bottom" 
    data-html="true" 
    data-content="<cart></cart>"> 
    Cart 
</a> 

とブートストラップポップオーバーのdata-content内に置くが、ディレクティブはコンパイルされません。

多くの回答は、AngularStrapAngularUIなどの他のライブラリを使用することをお勧めしますが、なぜ私の情報を改善するために知っておきたいのですか?私が何を考えて

はポップオーバーは、コンテンツの遅延ロードのような何かをするということですので、内容はAngularJSコンパイラのステージの後にロードされます。そして、AngularJSにこのコード部分を再コンパイルするよう指示する方法があると私は思います。それは本当ですか、可能ですか?

+1

は、我々はあまりにも、あなたのコードを使用することができます...しかし、あなたは本当に 'データ・コンテンツ=「」'を持つことはできません。 –

答えて

2

私は何を行う必要がありますが、次のだと思う。

ポップオーバー指令:

myApp. 
directive('popOverDirective', function ($compile) { 
    return { 
     restrict: 'E', 
     replace: true, 
     link: function (scope, element, attrs) { 
      var htmlText = '<a href="javascript:" data-toggle="popover" data- trigger="manual" data-placement="bottom" data-html="true" data-content="'+scope.content+'">Cart</a>'; 
      $compile(htmlText)(scope); 
      element.replaceWith(template); 


     } 
    } 
}); 

その後、あなたのhtmlに置き換えます

を持つ:

<pop-over-directive></pop-over-directive> 

あなたのdi直腸は ブートストラップポップオーバークラスの前にロードする必要があります。したがって、そのコンテンツも初期化されています。あなたのスコープにコンテンツがあると仮定しています。

関連する問題