問題タブ [rootscope]
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 - ng-switch でグローバル変数と比較する方法
AngularJS$rootScope
オブジェクトを使用して、コントローラーとビューの両方にアクセスできる必要があるいくつかのグローバル定数を公開しています。
ビューでグローバル値をレンダリングしようとすると、正しく機能します。
同様に、条件でグローバル値を参照すると、ng-if
それも機能します。
ただし、ng-switch
ブロック内で比較に同じ値を使用しようとすると、true と評価されることはありません。この JSFiddleは、これを機能させるための私の試みを示しています。また、定数値を$rootScope
(二重中括弧内の) メンバーおよび式として明示的に参照しようとしましたが、何も機能しません。
私が間違っていることはありますか?
ありがとう、
ティム
angularjs - $scope の代わりに $rootScope を使用できないのはなぜですか?
HTMLファイルはこれです:
私はコントローラを次のように書きました:
/search?fname=&lname= しかし、$rootScope の代わりにどこでも $scope を使用すると、正常に動作します (アラート ウィンドウに URL が適切に表示されます /search?fname=john&lname=player)。$rootScope を詳細に理解するには助けが必要です。ありがとう。
angularjs - angularjs:ルートスコープを二重に変更
私は次のようなものを持っています
その «true» が要素を非表示にする場所。これらの要素は、ヘッダー内のナビゲーション リンクです。現在のページに応じてそれらを交換し、対応するコントローラーから empty_nav() を呼び出します。問題は $rootScope です。関数内で console.log() を実行すると、選択したものを含め、各項目が正しく値を取得します。ただし、具体的なケース(各ページを閲覧する)では、すべてのアイテムを非表示にするだけで、その後、指定されたアイテムはフェードインしません.
私は何か間違ったことをしていますか?
PD: アイテムを 1 つだけにして、それにリンクとテキストを渡すことも考えています。代わりに、非常に多くのアイテムがあります :/
angularjs - Angular - Angular アプリの外からメッセージを $broadcast できますか?
角度コントローラーがリッスンできるイベントをブロードキャストするために、非角度コード (この場合は Facebook および Twitter JS SDK) が必要なシナリオがあります。なんで?最初のページの読み込み後、AJAX を介してページのコンテンツを読み込んで修正します。コンテンツには、複数のいいね/ツイート ボタンが添付されています (ブログ/アグリゲーターのフロント ページのように)。Facebookの「いいね」ボタンまたはTwitterの「共有」ボタンのいずれかでクリックが発生したときにイベントフックを追加したいと思います.ページにはそれらのいくつかがあり、新しいコンテンツが取得されるたびにそれぞれが変更されます(これもajax経由) )。
現在、SDK はこれを別の方法で処理します。
ツイッター
フェイスブック
いくつかのコントローラー
新しいコンテンツがフェッチされるたびにこれらのコントローラーが再作成される場合でも、これらのイベント ハンドラーを一度バインドしてから、関連するコントローラーでブロードキャストされたメッセージを処理するという考え方です。
基本的に、私が探しているのは、アプリの一部ではないにもかかわらず、既存の既に初期化された角度のあるアプリ$rootScope
とメッセージにフックする方法です。$broadcast
これが理にかなっていることを願っています。ありがとう。
javascript - AngularJS データ サービスと $rootScope イベント
データ サービスの使用と $rootScope イベントの使用について説明してください。
編集機能を提供するブランチのリストがあります。編集ボタンをクリックすると、次を使用してルートスコープでイベントをブロードキャストしています
このEditBranch
イベントは、ブランチの詳細を取得して適切な編集形式でレンダリングする編集/作成コントローラーによってキャプチャされます。
その他の機能は、新しいブランチを追加していて、追加されたらすぐに既存のブランチ リストにリストすることです。使用されるコードは次のとおりです
このように $rootScope を使用するのは正しいですか。または、shredService
作成後にブランチ データを共有するための を作成する必要があります。
angularjs - angularjsで$ rootScope変数を削除するには?
コントローラー$rootScope.tableformate
で、ポップアップにデータを入力する変数を定義しました。
ポップアップデータを埋めた後$rootScope.tableformate
は使用されません。この変数を削除するには?
angularjs - 初期 $rootScope デフォルトの設定が機能しないようです
UI 関連 (つまり、メニューを開く状態) のグローバル変数をいくつか用意したいと考えています。$rootScope
いつでもアクセスできるように、これらを配置することにしました。
これは私が書いたコードです:
angular.extend
同じオブジェクトに対する連続した操作が確実に保持されるように、意図的に を使用しました。また、オブジェクトに複数のプロパティを 1 つずつ追加するよりもクリーンで安全だと思います。
問題
ただし、上位コードは何もしません。アプリケーションを実行し、次を呼び出してルート スコープを確認すると:
アプリケーションのディレクティブによって操作されるundefined
プロパティまで取得します。そうして初めて参照が取得されます...しかし、それはまだ関数で定義したものではなく、ディレクティブが式ごとに生成したAngularによって生成されたオブジェクトプロパティです。ui
ng-click
ui
run()
ng-click
私は何を間違っていますか?