問題タブ [angularjs-watch]

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 投票する
2 に答える
233 参照

angularjs - $scope.$watch を再利用できますか

コピー/貼り付けして2つのコントローラーで使用したいコードを見つけました。それは何かを見ています。

コピー/貼り付けの代わりに、それをサービスに入れて、次のように両方のコントローラーからサービスを使用したいと思います。

私がこれを行うと、何が何であるかわからなくなり$scopeますよね?(ある読書によると、とにかくそれをさせてくれません。

それにもかかわらず、私は言いたいです、あなたがこのサービスを持っているなら、あなたはこの時計を手に入れます.

これを行うことができるヒントがあります: Passing current scope to an AngularJS Service

そこで私は彼の例を取り上げて修正し、scope.watch はそこで動作しますが、今ではウォッチ内で他のスコープ変数を設定できません。私はそれを行うのに十分なJavaScriptを知らないだけですが、近いです。正しい構文で動作すると本当に思います...

このスニペットの重要な機能は、スコープが異なるスコープであることです。シングルトンのようには機能しません。

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

javascript - 値が変更されたときにAngularJS '$watch'が起動しない

横向きで表示する必要がある Web アプリがあります。

innerWidthこれを行うために、とをチェックする関数を作成しましたinnderHeight。幅が高さよりも大きい場合は、幸せな日です。resizeこれは、ページをロードするときに完全に機能しますが、イベントが発生したときに方向も確認する必要があります。

だから私のコードの流れは -

  1. resizeイベント呼び出しのトリガー時$scope.getOrienttion()
  2. 現在の向きを計算し、結果を返す
  3. $scope.getOrienttion()を使用して の値の変化を監視し、 の値をwatch更新します。$scope.orientation

上記の手順 1 と 2 は正常に機能しているように見えますが、watch変更は検出され$scope.getOrienttion()ず、ページの読み込み時にのみ起動されます。私は何か間違ったことをしているに違いありません。誰でも問題を見つけるのを手伝ってくれますか。

関連するAngularJSは次のとおりです-

そして、これは、値に応じて条件付きクラスが設定されたHTMLです$scope.orientation(おそらく関係ありませんが、念のため)-

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

angularjs - コントローラー関数の後に呼び出される Directive scope.$watch

だから私はコントローラーとディレクティブを持っています。コントローラーがディレクティブの後に実行される理由を理解できません。答えを見つけようとしてスタックを精査しましたが、ほとんどの答えはケースバイケースのようです。

最も単純な形の私のコントローラはそうです

ng-click ボタンをクリックすると、gotoLocation スコープ関数に移動し、$scope.initAddress を再定義します。私のHTMLは次のとおりです。

ディレクティブを見ると、使用しています

現在、ボタンをクリックすると、コントローラーと $scopes.initAddress に実行され、$scope.watch にはヒットしません。もう一度クリックすると、最初に $scope.watch にヒットし、次にコントローラーに移動し、それに応じて更新されます。前にコントローラーにヒットし、次に $scope.watch がコントローラーの変更をキャッチするように変更するにはどうすればよいですか。最初に $scope.watch を実行してからコントローラーを実行するのではなく。

助けてくれてありがとう

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

javascript - ディレクティブの配列にアイテムをプッシュするときにコントローラーの $watch が起動しない

publish.selected_tagsディレクティブとコントローラーの間に双方向バインド変数があります。

$watchコントローラーでその変数を保持しました:

私が直面している問題は、アイテムをリストにプッシュすると、が起動されないことです:selected_tags$watch

ただし、配列に割り当てる と、コントローラーが起動します。selected_tags$watch

なぜこうなった?$watch要素をプッシュしたい場合、どのように発火させることができますか?

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

javascript - AngularJS $watchがifブロックで機能しない

私のAngularスクリプトが機能していることがわかった:

しかし、ifステートメントを追加した場合はそうではありません:

試してみてください: http://codepen.io/anon/pen/jWBEVM

しかし、私はその理由を理解していません。既知の問題はありますか? 誰でも助けることができますか?

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

javascript - スコープ AngularJS で定義された変数をチェックする $watch

アラートを表示する次のディレクティブがあるので、show varible の変更が star に変更されてタイムアウトが発生したときにキャッチしたいのですが、どうすればそれを行うことができますか?

リンク関数は初回のみ呼び出されましたが、すべての変数 show、message、および type は未定義でした

指令コード

html ディレクティブ コード

コントローラーの例

htmlコード

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

javascript - $watchはangularjsのタブ内で呼び出されていませんか?

これがプランカーでの私の例です

この例では、2 つの入力テキスト ボックスを作成しました。1 つはタブの外側、もう 1 つは内側です。両方について、watch 関数を作成しました。外側のものは正常に機能していますが、タブ内の時計機能が機能していません。どちらの場所にも同じタイプのコーディングがありますが、なぜ一方が機能し、もう一方が機能しないのかわかりません。

誰でもこれについて私を助けることができますか?

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

javascript - $scope.$watch は一度だけトリガーされます

コントローラーに次のウォッチャーを設定しました。

これは、embeds変更時に起動する必要があります。すべての埋め込みツイートと Facebook 投稿がページに読み込まれたかどうかを確認する次の関数があります。すべてのツイートまたは Facebook の投稿が読み込まれると、ダイジェスト サイクルをトリガーするためにブロックembeds内で更新されます。$timeout

私が抱えている問題は、ウォッチャーを設定したときに一度だけ起動することです。バインドおよび/または監視embedsを試みましたが、ウォッチャーは一度しか起動しません。$scopeembeds.twitterembeds.facebook