問題タブ [angularjs-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.

0 投票する
3 に答える
31434 参照

angularjs - AngularJS で $watching を停止するにはどうすればよいですか?

AngularJS スコープに $watch を設定して、関心のある式が変更されたときに通知されるようにすることができます。しかし、興味を失ったら、どうすれば見るのをやめることができますか?

0 投票する
2 に答える
7914 参照

angularjs - シンプルな angularjs ネストされたディレクティブによる分離スコープ

このplnkrをチェックしてください

ディレクティブ、スコープ、および分離スコープについて見つけることができるすべてを読みました。しかし、私はまだこれを機能させる方法を理解できません。

私が作成したディレクティブは、別のディレクティブ内にネストされていない限り、完全に機能します。

ネストされている場合、'localFunc: "&func"' 属性は外側のコントローラー スコープに正常にバインドされますが、'localAttr: "=attr"' スコープは失敗します。

誰かが理由を理解するのを手伝ってくれることにとても感謝しています。

0 投票する
2 に答える
4837 参照

angularjs - ngtemplate でのモデルのエイリアス

同じテンプレートを別のモデルに再利用できるように、テンプレートで使用されるモデルにエイリアスを設定したいと考えています。たとえば、次のモデルでは:

「メンバー」と「子」の両方に「名前」プロパティがあります。したがって、この「名前」プロパティを操作する単一のテンプレートを作成したいと考えています。私はこの質問の助けを借りてこれを達成することができました:

ngInclude を異なるモデルにバインドする

提案どおり、次のようなディレクティブを作成しました。

このディレクティブの使用法は次のとおりです。

テンプレートの再利用を実現できましたが、ディレクティブで「スコープ」を使用しているため、コントローラー スコープのプロパティにアクセスできない分離スコープが作成されました。したがって、コントローラーの場合:

ディレクティブ内のテンプレートは、「プレフィックス」プロパティにアクセスできません。以下はjsfiddleです:

http://jsfiddle.net/vaibhavgupta007/mVBaC/1/

これで何が問題になる可能性がありますか?

編集

$parent を使用してプレフィックスにアクセスすることもできます。しかし、これはクリーンなアプローチです。

0 投票する
2 に答える
1984 参照

angularjs - AngularJSで使用されていないときにスコープから削除するには?

数秒ごとにティックするようにコントローラーをセットアップしました。これにより、バックエンド API への安らかな呼び出しが行われます。別のセクション(別のコントローラーで処理される)に移動する場合を除いて、すべてが期待どおりに機能し、ティックは引き続き発生します。

コントローラーをスコープから完全に削除することは可能ですか?

これが私の現在のコントローラーの貼り付けです:

0 投票する
1 に答える
882 参照

angularjs - AngularJS で ng-repeat を使用すると、$scope 変数が子の間で衝突するのはなぜですか?

2 つの子を持つ「ディスカッション」または「ディベート」を表すオブジェクトがあります。各子は、ディベートの「競合」を表す子オブジェクトのコレクションです。1 つの子は「肯定的な」主張の集まりであり、もう 1 つは「否定的な」主張の集まりです。

私はこのようなものを使用しています:

これにより、2 つの競合セットが表示され、それぞれの上部に [新規競合の追加] フォームがあります。フォームは、toggleEditForm() メソッドに基づいて切り替えられます。「新しい競合」と「競合の編集」に同じフォーム テンプレートを使用しているため、そのフォームには競合が「肯定的」か「否定的」かのモデル (ラジオ ボタン) があります。

コントローラー「contentionGroupCtrl」は競合のグループ用であり、その toggleEditForm メソッドは次のようになります。

「肯定」側の「新しい競合の追加」フォームを開いたとしましょう。ラジオボタン「肯定」が選択された状態で、空白の名前が表示されます。次に、[Negative] 側の [Add New Contention] ボタンをクリックすると、適切なフォームが表示されますが、両方の [Name] フィールドが空白になり、両方の [Negative] のラジオ ボタンが選択されます。

$scope はそれぞれの側で異なるはずですよね? 各フォームは独自の $scope.edit モデルを使用します。否定的な競合側の「edit.name」および「edit.aff」モデルを変更すると、肯定的な側に影響するのはなぜですか?

0 投票する
1 に答える
1338 参照

internet-explorer - AngularJs ディレクティブのテンプレートが IE9 で更新されない

AngularJS のディレクティブを作成しています。Internet Explorer (IE9) では期待どおりに動作しません。元の html をテンプレートに置き換えますが、テンプレートの補間文字列は更新しません。

Chrome、Firefox、Safari で正しく動作します

これがコードです

そして、これがディレクティブを呼び出すhtmlです

ここにフィドルがあります http://jsfiddle.net/saP7T/

0 投票する
1 に答える
1287 参照

angularjs - $scope.headings データ値は $http.get の外では定義されていません

目標:動的なテーブル ヘッダー (GET 経由で取得) を持つテーブルを作成します。そのため、テーブルに入力するために使用される (別の GET を介して取得された) 値には、2 つを接続できる header_id があります。

すなわち

headers = [{name:header1, id:1}, {name:header2, id2}]
list_entries = [{value:'pop', header_id:1},{value:'bop', header_id:3}]

一部のテーブル セルが空になる (ヘッダーに一致する値がない) という事実を尊重する必要があるため、list_entries で ng-repeat を直接使用してテーブルにデータを入力することはできません。

$scope.headings にアクセスして反復処理し、ロジックを使用して値を一致させたい (header_id を比較)。

これは他の人にとってはばかげた質問のように思えるかもしれませんが、私は本当に良いアプローチを探してみました. これに関して正しい方向に向けられただけで本当に感謝しています。

0 投票する
1 に答える
4019 参照

angularjs - angularjsで配列から1つのアイテムを表示するには?

そのため、1 つの単純なアプリのフロントエンドを書いていて、1 つのことにこだわっています。ユーザーを単一のニュースページに移動させるニュースリストページがあります。

すべてのニュースは、ニュース コントローラーにある 1 つの配列にあります。

正常に動作しているニュース一覧ページは次のとおりです。

そして、正直に言うと、選択した 1 つのニュースを表示する方法がわかりません...