2016-07-12 8 views
0

コントローラでは、ビュー内の要素にアクセスしたいので、ユーザーがアクションを呼び出すときに操作できます。私は現在、jQueryとJSTreeを使用していて、私の現在のソリューションは、次のとおりです。AngularJS - 関連付けられているコントローラからIDでView要素にアクセス

$('#jstree_demo_div').jstree(true).hide_node(item); 

と、この作品!

同じビューとコントローラの2番目のインスタンスを作成すると、私の問題が発生します。 $('#jstree_demo_div')を使用してviews要素を選択しているため、上記のいずれかのコントローラインスタンスで上記を呼び出すと、DOM内のjstree_demo_divの最初のインスタンスが常に選択されるため、1つのビューだけが正しく動作します。

関連するビューの範囲内の要素のみを取得するようにコントローラを制限するにはどうすればよいですか?

私の見解は、このようなものです:

<div class="container" ng-controller="listingsController"> 
    <div class="row"> 
     <div class="col-xs-12 col-sm-9 col-md-4"> 
      <label style="position:fixed">Customers</label> 
      <div style="overflow: auto; height:300px; margin-top:20px" id="jstree_demo_div" role="tree" aria-multiselectable="true"></div> 
     </div> 
    </div> 
</div> 
+0

jQueryに問題があります。 – dfsq

+0

こんにちは、 "私は同じビューとコントローラの2番目のインスタンスを作成するときは、パートを詳しく教えてください。 – ajaysinghdav10d

+0

まあ... IDはユニークなので、あなたは1つ以上のものを見つけるべきではありません。 – GMaiolo

答えて

1

角度の方法は、あなたのビューに複数のコピーを置くあなたのjstreeが含まれているディレクティブを作成することです。ディレクティブのリンク関数では、そのディレクティブの子のみを表すjQueryオブジェクトにアクセスできます。セレクターを使用して作業を行う場所があります。 https://docs.angularjs.org/guide/directiveの「DOMを操作する命令の作成」の節を参照してください。

+0

あなたは正しかった、私はちょうど自分の指示をしなければならなかった。ありがとう! – PlantPorridge

関連する問題