0

ディレクティブの内容をサービスからのデータで更新しようとしています。真:サービス コントローラ、ディレクティブ、およびサービス間のAngularjsデータバインド

  • 指令(スコープによって呼び出されるメソッド内で>いくつかのアクション
  • 上のコントローラ内のメソッドを呼び出しコントローラのアップデート$ scope.directiveData -

    1. サービス(HTML5キャンバスサービス):それはこのように動作します)新しいデータに従ってコンテンツを更新する必要があります

    問題はディレクティブの内容を更新しません。ただし、コントローラのdirectiveDataへの定期的な更新を追加すると、次のようになります。

    $interval(function() {$scope.directiveData.abc;}, 100); 
    

    ディレクティブはコンテンツを更新します。

    この現象の説明はありますか?この定期的な更新をどのように取り除くことができますか?

    私はjsFiddleで問題をシミュレート:https://jsfiddle.net/eyNYw/857/

  • 答えて

    1

    scope: trueは、ディレクティブのスコープ分離(Angular directive. Isolating the Scope of a Directive)を行います。したがって、このディレクティブにはコントローラ変数$ scope.directiveDataはありません。

    あなたはこの

    scope: {directiveData: '='} 
    

    '=' のような孤立変数を追加することができます - 2つの指令を通じて$を渡すscope.directiveDataを、その後

    との結合方法

    <your-directive directive-data="directiveData"></your-directive> 
    
    属性を意味し、

    $ scope.directiveDataを更新すると、dはこれを更新しますディレクティブ。

    +0

    私はこの1つとスコープを試しました:スコープを全く分離しないfalse。同じ振る舞い。私はコントローラ指向の間のデータバインディングだけではないと思う。それはまた、コントローラから関数を呼び出すサービスに関するものです。 – user2616232

    +0

    詳細が必要です。少なくともコントローラーアクションと指令コードの例。 – NechiK

    +0

    jsfiddleのエラーをシミュレートしました:https://jsfiddle.net/eyNYw/857/ – user2616232

    関連する問題