2017-06-18 13 views
-1

グラフデータをフィルタリングするためのフィルタと印刷するための印刷アイコンを使用して、一部のデータのGoogleグラフを表示するウィジェットがページにあります。モーダルのページ要素を展開

グラフ、フィルタ、および印刷機能が同じ画面を表示するボタンを追加して、より大きな画面表示のモーダルで作業したいと考えています。ページ内のウィジェットが小さいためです。

私はボタンを追加しようとしましたが、このボタンの機能をリンク機能に追加してelement.html()をモーダルで開くと、htmlは機能しましたが、フィルタとプリントは機能しません。

element.html()の何が問題になっていますか?私は$ compileを使うのに疲れましたが、それは私に多くのエラーをもたらしました。何が使えますか? $ rootScope.openModalが$モーダルサービスを利用する単なるラッパーサービスであることを

app.directive("widget", function ($rootScope) { 
     return { 
       restrict: "EA", 
       scope: { 
         title: '=', 
         options: '=' 
       }, 
       transclude: true, 
       templateUrl: "widget.html", 
       link: function(scope, element, attrs, ctrl, transclude) { 
        scope.print = function() {....} 
        scope.filterChart = function() {....} 

        scope.expand = function() { 
         $rootScope.openModal("expand Modal", element.html(), {});  
        } 
       } 
     } 

ノートでは、私たちはデザインでいくつかの問題があると思うタイトルと本文

+0

@ MaximShoustin done – sisimh

+0

あなたがそのコードを含んでいないときに、あなたが 'element.html()'を使って何が間違っているのかを知ることはできません。一般に、AngularJSディレクティブは$ compileサービスでコンパイルする必要があります。単純に 'element.html()'で追加しても動作しません。 $ compileサービスを使用してエラーが発生した場合は、そのコードとそのエラーメッセージの完全なテキストを参照する必要があります。 – georgeawg

答えて

0

をとります。

物事を整理する:

あなたが(「チャート、フィルターおよび印刷機能を持つウィジェット」あなたのケースでは)いくつかのロジックを持っている

この論理は、directiveまたはcomponent(1.5+)に実装する必要があります。

したがって、指示名はwidgetです。

この指令は、メインページ(これまでの作業内容)またはモーダルの一部として実装できます。モーダルは、widgetのラッパーのみです。だから、私はそれを動作させるために何の問題が表示されていないスコープディレクティブを隔離持っているので


大丈夫ですあなたに<widget title="xx" options=someOptions></widget>の内側に置く新しいempltyのモーダルを作成します。

+0

問題はフィルターが機能していないため、フィルター関数内にconsole.logを追加するか、印刷関数を追加してモーダルを開いた後で、モーダル内からそれらをクリックすると何も起こりません。 – sisimh

+0

すべてのモーダルには独自のものがありますスコープなので、スコープが更新されているかどうかをチェック –

関連する問題