問題タブ [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.
angularjs - $scope.$watch を再利用できますか
コピー/貼り付けして2つのコントローラーで使用したいコードを見つけました。それは何かを見ています。
コピー/貼り付けの代わりに、それをサービスに入れて、次のように両方のコントローラーからサービスを使用したいと思います。
私がこれを行うと、何が何であるかわからなくなり$scope
ますよね?(ある読書によると、とにかくそれをさせてくれません。)
それにもかかわらず、私は言いたいです、あなたがこのサービスを持っているなら、あなたはこの時計を手に入れます.
これを行うことができるヒントがあります: Passing current scope to an AngularJS Service
そこで私は彼の例を取り上げて修正し、scope.watch はそこで動作しますが、今ではウォッチ内で他のスコープ変数を設定できません。私はそれを行うのに十分なJavaScriptを知らないだけですが、近いです。正しい構文で動作すると本当に思います...
このスニペットの重要な機能は、スコープが異なるスコープであることです。シングルトンのようには機能しません。
javascript - 値が変更されたときにAngularJS '$watch'が起動しない
横向きで表示する必要がある Web アプリがあります。
innerWidth
これを行うために、とをチェックする関数を作成しましたinnderHeight
。幅が高さよりも大きい場合は、幸せな日です。resize
これは、ページをロードするときに完全に機能しますが、イベントが発生したときに方向も確認する必要があります。
だから私のコードの流れは -
resize
イベント呼び出しのトリガー時$scope.getOrienttion()
- 現在の向きを計算し、結果を返す
$scope.getOrienttion()
を使用して の値の変化を監視し、 の値をwatch
更新します。$scope.orientation
上記の手順 1 と 2 は正常に機能しているように見えますが、watch
変更は検出され$scope.getOrienttion()
ず、ページの読み込み時にのみ起動されます。私は何か間違ったことをしているに違いありません。誰でも問題を見つけるのを手伝ってくれますか。
関連するAngularJSは次のとおりです-
そして、これは、値に応じて条件付きクラスが設定されたHTMLです$scope.orientation
(おそらく関係ありませんが、念のため)-
angularjs - コントローラー関数の後に呼び出される Directive scope.$watch
だから私はコントローラーとディレクティブを持っています。コントローラーがディレクティブの後に実行される理由を理解できません。答えを見つけようとしてスタックを精査しましたが、ほとんどの答えはケースバイケースのようです。
最も単純な形の私のコントローラはそうです
ng-click ボタンをクリックすると、gotoLocation スコープ関数に移動し、$scope.initAddress を再定義します。私のHTMLは次のとおりです。
ディレクティブを見ると、使用しています
現在、ボタンをクリックすると、コントローラーと $scopes.initAddress に実行され、$scope.watch にはヒットしません。もう一度クリックすると、最初に $scope.watch にヒットし、次にコントローラーに移動し、それに応じて更新されます。前にコントローラーにヒットし、次に $scope.watch がコントローラーの変更をキャッチするように変更するにはどうすればよいですか。最初に $scope.watch を実行してからコントローラーを実行するのではなく。
助けてくれてありがとう
javascript - ディレクティブの配列にアイテムをプッシュするときにコントローラーの $watch が起動しない
publish.selected_tags
ディレクティブとコントローラーの間に双方向バインド変数があります。
$watch
コントローラーでその変数を保持しました:
私が直面している問題は、アイテムをリストにプッシュすると、が起動されないことです:selected_tags
$watch
ただし、配列に割り当てる と、コントローラーが起動します。selected_tags
$watch
なぜこうなった?$watch
要素をプッシュしたい場合、どのように発火させることができますか?
javascript - AngularJS $watchがifブロックで機能しない
私のAngularスクリプトが機能していることがわかった:
しかし、ifステートメントを追加した場合はそうではありません:
試してみてください: http://codepen.io/anon/pen/jWBEVM
しかし、私はその理由を理解していません。既知の問題はありますか? 誰でも助けることができますか?
javascript - スコープ AngularJS で定義された変数をチェックする $watch
アラートを表示する次のディレクティブがあるので、show varible の変更が star に変更されてタイムアウトが発生したときにキャッチしたいのですが、どうすればそれを行うことができますか?
リンク関数は初回のみ呼び出されましたが、すべての変数 show、message、および type は未定義でした
指令コード
html ディレクティブ コード
コントローラーの例
htmlコード
javascript - $watchはangularjsのタブ内で呼び出されていませんか?
これがプランカーでの私の例です
この例では、2 つの入力テキスト ボックスを作成しました。1 つはタブの外側、もう 1 つは内側です。両方について、watch 関数を作成しました。外側のものは正常に機能していますが、タブ内の時計機能が機能していません。どちらの場所にも同じタイプのコーディングがありますが、なぜ一方が機能し、もう一方が機能しないのかわかりません。
誰でもこれについて私を助けることができますか?
javascript - $scope.$watch は一度だけトリガーされます
コントローラーに次のウォッチャーを設定しました。
これは、embeds
変更時に起動する必要があります。すべての埋め込みツイートと Facebook 投稿がページに読み込まれたかどうかを確認する次の関数があります。すべてのツイートまたは Facebook の投稿が読み込まれると、ダイジェスト サイクルをトリガーするためにブロックembeds
内で更新されます。$timeout
私が抱えている問題は、ウォッチャーを設定したときに一度だけ起動することです。バインドおよび/または監視embeds
を試みましたが、ウォッチャーは一度しか起動しません。$scope
embeds.twitter
embeds.facebook