Angular コントローラーとディレクティブの基本的な機能は理解していますが、使用する Dynatree ツリー ウィジェットをラップするためにそれらをどのように適用するのが最善かを理解するのに苦労しています。
問題は、通常、Dynatree には ajax を介してデータを取得し、それ自体を設定する独自の手段があることです。通常、これは、「appendAjax」メソッドを呼び出して特定のツリー ノードにデータを追加することで行います。つまり、すべて 1 つの操作です。
Ajax メソッドへの呼び出しを分離し、これをコントローラーに配置して、独自のツリー オブジェクトに ajax 呼び出しの結果を格納できることを知っています。その後、ディレクティブでそのツリー オブジェクトへの変更を監視し、Dynatree ウィジェットを手動で更新できます。 . しかし、私が扱っているツリー データは大きくて複雑であり、dynatree が既に独自のツリー構造を持っている場合、コントローラーで独自のツリー構造を維持する必要があるのはかなり非効率的です。
この場合、コントローラーは本当に必要ないので、代わりにダイナツリーをディレクティブ内にラップして、基本的にこれまでと同じように使用し続けることができますが、これは機能しないようです-そしてこれおそらく、ディレクティブに関するAngularの知識が不足している場所です。だから私はいくつかの質問があります:
1]ディレクティブ内で何らかの種類のajax呼び出しを行うことは悪い習慣と見なされますか?
2] もしそうなら、特定の方法で物事を行うのが好きなこのサードパーティのコントロールをどのようにラップすればよいですか?コントローラーで独自の複製ツリー構造を維持する必要がありますか?
3] ディレクティブで Ajax 呼び出しを行っても問題ないと判断された場合、ディレクティブで ajax メソッドが確実に実行されるようにするにはどうすればよいですか? (これが私の問題の原因だと思います)