問題タブ [angular-ng-if]
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 - 複数の引数を持つAngular ng-if=""
私はAngular開発を始めようとしています。ドキュメントを確認した後も、いくつかの疑問が残ります。ng-if
に対応する複数の引数を持つa をどのように書くのが最善ですか
if( a && b)
またif( a || b )
angularjs - Angularjs ng-if停止レンダリングdiv
私は AngularJS を学んdiv
でいます$index == 2
。
これは私のコードです:
Fiddle
: http://jsfiddle.net/2prRw/3/
問題
「My element: 0」、「My element: 1」、および「My element: 3」は表示されません。
結果は次のとおりです。
ありがとう!
編集
期待される結果は次のとおりです。
angularjs - AngularJS ウォッチ DOM の変更
auto-carousel
リンクされた要素のchildrenを反復処理する1 つのディレクティブがあります。
ng-if
ただし、子はs 式がまだ解析されていないため、まだ DOM にロードされていません。
DOM ツリーに変更があったことを親ディレクティブが認識していることを確認するにはどうすればよいですか?
使用でき$timeout
ましたが、信頼性が低いと感じています。ng-show
代わりに使用することもできますng-if
が、それは質問に答えず、必要なものではありません。
javascript - ng-repeat 予期しない複数回の繰り返し
次のようなオブジェクトがあります。
したがって、基本的にオブジェクトの長さはわかりません。次のコードを使用して結果をレンダリングしています。
テーブルの最初の要素 (強調表示されている) を常にprimary=true
プロパティを持つオブジェクトにしたい。
上記のオブジェクトで期待される結果:
現在の結果:
オブジェクトに 3 番目の要素を追加すると、次のようになります。
angularjs - ng-if内のangularjs ng-view
angular 1.2.10 を ngRoute、jquery 1.10.2 で使用する index.html に次のコードがあります。
最初のログイン ページ (ルートとして構成されていない) は、必要なすべての JavaScript ファイルをダウンロードしますが、ログインして ng-if が true と評価された後、ブラウザー内のすべての JavaScript ファイルに対して jquery によって一連の XHR が起動されていることに気付きます。コンソール:
コンソールは、これらの XHR が jquery.1.10.2:8706 から実行されていることを報告します
ドキュメントに基づいて、ng-if が true と評価されると、その時点で要素が作成およびコンパイルされるようです。これは ng-view と ngRoute に関係があり、これらがどのように接続されているかを想像していますが、この特定の動作が発生している理由をドキュメントから収集することはできませんでした. 誰かがこの振る舞いに何らかの洞察を与えることができれば、および/または私が取ろうとしていたアプローチに根本的に問題がある場合は、それを大いに感謝します.
注: ng-if を ng-show に置き換えた場合、この動作は発生しません。
javascript - ng-if が要素を追加/削除しているときに通知される
ng-if を使用して、インライン編集の目的でタイプヘッド入力を追加/削除します。ng-if 値は「編集」ボタンで更新されます
それで、テキスト入力が dom に追加されたら、テキスト入力にフォーカスを与えるための最良または推奨される方法は何ですか?
ありがとう
ライオネル
javascript - AngularJS 1.2.13 ng-if は $resource の結果を再評価しません
テンプレートに次のようなものがあります。
このスコープのコントローラーには、次のものがあります。
$scope.foo = $resource("path/to/resource").query();
リソースは find だけをロードし、単純な JSON 配列 (Chrome でリクエストを監視して確認) を返し、foo
その配列を含む他のデバッグ ショーを正確に表示します。2 番目は期待どおりにクラスをdiv
適用しますが、最初のクラスはまだfalse に評価されているため、レンダリングできません。foo-is-present
div
ng-if
div
div
リソースの結果がロードされたら最初に表示されるようにしたいので、これは正しくないようです。ここで何が欠けていますか?
編集配列がng-if
空でなくても、「真実」のバージョンには配列が含まれていないことがわかりました。条件を に変更することでこれを回避できましたng-if="!!foo"
が、これはハッキーに感じます。誰かがより良い洞察や解決策を持っている場合は、共有してください!
angularjs - トランスクルードされたスコープの ng-if がスコープの継承を壊す
そのフィドルは問題を示していますhttp://jsfiddle.net/LAqeX/2/
ページの一部をラップして非表示にするディレクティブを作成したいと考えています。そして、不要なバインディングを削除するために ng-if を使用したいと思います。しかし、いくつかの黒魔術が発生します。
これは私の好ましいディレクティブ コードです。
2 つのスコープを作成することになっています。
- title と visible の 2 つの変数を持つディレクティブ アイソレート スコープ
- 「通常の」スコープ ツリーからプロトタイプとして継承されるトランスクルード スコープ。
ただし、ng-if はトランスクルード スコープを現実から多少切り離し、トランスクルード スコープはコントローラから継承しません。フィドルを参照してください。問題が非常に明確に示されています。
そこで何が起こっているのか、それを解決する方法はありますか?
アップデート
スコープチェーンが壊れているように見える理由を見つけたようです。ng-if によって作成されたスコープは withIf ディレクティブの isolate ブランチに属します。そのため、コントローラーのスコープが存在することさえわかりません。しかし、問題は同じままです-そのような場合に ng-if を使用する方法。