問題タブ [isolate-scope]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Isolate Scope 2 way バインディングが親スコープの値を更新しない
こんにちは、私が持っているコントローラにディレクティブ foo があります
テンプレートで分離スコープを使用して、別のディレクティブ内でこの変数を渡しています
テンプレート内で ng-if を使用する
今、子ディレクティブで有効に更新すると。テンプレートで検証済みと表示されます。しかし、変数は親ディレクティブ コントローラーで更新されませんでした。なぜこれが起こっているのですか?
angularjs - Angular の子ディレクティブから Controller Scope にアクセスする
$parent を使用せずにコントローラ スコープにアクセスしたい。私が読んだすべてから、次のようにそれを分離スコープに渡すことができると思いました:
ただし、スコープのmessage
プロパティを更新するディレクティブを取得できません。Plnkr リンク.
angularjs - 値が分離範囲外になる前に ngChange が発生する
以下は、説明するための単純化されたディレクティブです。入力に入力すると、入力した内容とまったく同じようにログインがログアウトされることを期待しconsole.log
ています。メインコントローラーの var がディレクティブから新しい値を受け取る直前に実行さloadResults
れているため、実際には 1 文字遅れてログに記録されます。ただし、ディレクティブ内にログインすると、すべてが期待どおりに機能します。なぜこうなった?loadResults
searchFilter
私の解決策
私の単純な例で ngChange で何が起こっているかを理解した後、私が実際に渡している ngModel がオブジェクトであり、そのプロパティが変更されているという事実によって、実際の問題がもう少し複雑であることに気付きました。このディレクティブを入力の 1 つとしてフォーム検証を使用しています。ディレクティブ内で $timeout と $eval を使用すると、すべての問題が解決することがわかりました。
angularjs - 別の分離スコープ ディレクティブ内のディレクティブからのデータを共有する
コンポーネント スタイル ディレクティブを記述して、Angular コードにコンポーネント アプローチを採用しようとしていますが、問題が発生しました。以下は、ページの私のhtmlテンプレートです。AngularStrap tabs ディレクティブ を使用していることに注意してください。
私が抱えている問題は、woSamplesSummary.materialsCount が work-order ディレクティブのすぐ下 (タブ ペインの範囲外) で定義されていないことですが、タブ ペイン ディレクティブではタブ タイトルの一部として (タブ ペイン内で) 正しく表示されます。範囲)。基本的な問題は、別の分離されたスコープ ディレクティブ内でディレクティブを使用するときに、ページ上でデータを共有する方法ですか?
これが私の work-order-samples ディレクティブです。ほとんどのロジックを削除しましたが、双方向バインディングを使用して woSamplesSummary をセットアップし、プロパティをコントローラーにバインドしたことがわかります。これはすべて正しく機能しており、$scope の使用をやめることができました。
問題は、tabs ディレクティブが分離されたスコープを作成しているように思われるため、現在のタブの外でデータを使用できるようにすることができません。
他の分離されたスコープ ディレクティブ内でデータが使用されている場合、ディレクティブからデータを利用できるようにする方法が必要なようです。私は多くの異なるアプローチを試みましたが、成功しませんでした。ディレクティブ内で $rootScope に値を割り当てることはできますが、適切な解決策ではありません (たとえば、このディレクティブをページで複数回使用したい場合)。
何か案は?
javascript - Angular の isolate-scope ディレクティブでメソッドを呼び出せません
次の例を考えると、要素を切り替えるために期待どおりに機能する理由が知りたいです。 scope:true
ただし、scope:{}
が使用されている場合、toggle メソッドは によって呼び出されませんng-click
。私自身の実験では、bindToController と controllerAs を使用するかどうかに関係なく、問題は同じです。