親スコープの変数に影響を与えて、ディレクティブ内からng-showを切り替えようとしています。ディレクティブは、ng-repeatディレクティブを含むカスタムディレクティブです。アイデアは、ng-repeatが終了したら、含まれているdivとその中の要素を非表示にしたいということです。
これが私の状況を示すPlunkrです:http://beta.plnkr.co/edit/C42Z25?p = reviewまた 、同じ問題を使用するJSFiddleでの比較もありますが、これはng-repeatではないため、機能します:http ://jsfiddle.net/dyzPC/
したがって、いくつかの問題があります。ディレクティブ内ではscope.$parent.showMe = true
、親スコープを変更するために使用する必要があります。単にそれを設定showMe
するために使用することはできないようですscope.showMe = true
。スコープを分離してみましたが、スコープなし、真のスコープですが、何も機能しないようです。
さらに、jqueryコールバック関数では、親スコープのshowMeをとしてリセットできないようですscope.$parent.showMe = false
。これにより、コンテンツがある場合は含まれているdivを表示できず、コンテンツがない場合は非表示にできません。
ちなみに、最後の問題の1つは、の使用法です$last
。plunkrの例では、$ lastを使用することは可能ですが、私の実際のコードでは、ng-repeatコレクションがHTTP応答インターセプターからいっぱいになっています。これにより、すべての要素が。になるため、$lastを使用できなくなるよう$last = true
です。ng-repeatが終了したことを検出する別の方法はありますか?