問題タブ [angular-controller]
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 - AngularJS でクリックを検出するには、ディレクティブまたはコントローラーを使用しますか?
a
のすべてのクリックを追跡button
したいinput[type="submit"]
body タグにアタッチされたコントローラーを使用するのは理にかなっています。すべてのクリックと日付とタイムスタンプをそれぞれ追跡する必要があります。API の準備はできていますが、クリックをリッスンする方法がわかりません。
コントローラーはそれを行うのに良い方法だと思いましたが、私が読んだいくつかのことは、ディレクティブを使用することでした。基本的に body タグをディレクティブに変えます。
それは私には意味がありませんが、私はこれが初めてです。
どちらの場合も、クリックを検出するにはどうすればよいですか? 以下のディレクティブを使用しようとしていますが、起動しません。見つからないと言うdomElement
これが私の指示です。このようにすると、クリックを API に書き込むためのコントローラーは必要ないのでしょうか?
javascript - コントローラーでサービスを呼び出すと、結果が 2 回取得されます
サービスも含む単純なコントローラーを作成しています。このサービスは json を返します。さて、私の問題は、コントローラーを介してリクエスト関数を呼び出して結果を出力すると、すべてのオブジェクトが 2 回取得されることです。
だから、これは今私のコードです:
json: http://pastebin.com/dTcNDQeA
問題は .success のどこかにあるに違いないと思いますが、具体的な理由はわかりません。
私の解決策:コントローラーのサービス呼び出しの周りに関数をラップすると、最終的にうまくいきました。理由はまだわかりません。
javascript - AngularJs: Uncaught ReferenceError: $scope がデバッガー モードで定義されていません
次のコードがあります。
HTML
AngularJs
このシナリオでは、問題はありません。ただし、この行を変更すると、次のようになります。
$scope.message = $scope.newMessage;
と:
debugger;
次に、コンソールが開いている間にボタンをクリックして と書く$scope
と、次のエラーが表示されます。
Uncaught ReferenceError: $scope is not defined
だから私の質問は:
- 関数内で
$scope
を使用すると にアクセスでき、デバッグ モードではアクセスできない理由(関数のどこかで を使用していない場合)$scope
$scope
- あまりにもアクセスできない
$http
ため、この状況での作業方法$http
注:これは重複した質問かもしれませんが、この問題の直接的な説明と解決策は見つかりませんでした
angularjs - Angular UI Router を使用してコントローラーで $scope と 'this' を使用する
ui-routerについて$scope
、ご利用にあたっては、this
controllerAs
構文を使用している場合、つまり:
私のコントローラーでは、this
の代わりに使用してい$scope
ます。したがって、ログインコントローラーには次のようなコードがあります。
しかし、$scope
からグローバルにブロードキャストされたイベントをリッスンするためにも使用しています。$rootScope
これは、記憶が正しければ、交換されているにもかかわらず、 にthis
属するメソッドがないためです。$scope
したがって、このイベントがブロードキャストされたときに、イベントブロードキャストをリッスンし$rootScope
、 のような他のコントローラーロジックを呼び出しています。func2
ハンドラーfunc2
内で呼び出したい場合はどうすればよいですか? $on
コントローラーでこのようなものを初期化する規則を行う必要がありますか?
進行する最善の方法と、一般的な慣習がここにあることに興味があります。$scope
と の両方を使用するのは適切this
ですか? 交換できるため、両者の主な違いは何ですか?
javascript - Angularjs - コントローラーが init() 関数を複数回呼び出す
angularjs アプリの作成中に問題が発生しました。コントローラーを作成し、routeProvider にバインドします。こんな感じでコントローラーの値を初期化する機能付き。
このような login.html の場合
アプリを実行すると、このように init() が 3 回呼び出されます。 ログインする
このスタックオーバーフローで、多くの人がこのトラブルに見舞われていることを確認してください。それらはすべて、コントローラーが (routProvider とテンプレートで) 複数回バインドされていないことを確認し、テンプレートで ng-app が 1 つだけであることを確認することで解決されました。このような私のメインのhtml。
このような私のメインアプリの場合。
このコントローラーでは問題ありません。テキストを初期化したいだけですが、サーバー側への AJAX 要求を必要とする一部のコントローラーでの初期化では問題があり、注目すべき要求が多すぎる可能性があります。誰でもこれを解決できます私を助けてください。ありがとう。
PS1。angular-seed の私の練習ベースhttps://github.com/angular/angular-seed
PS2。最初は、jquery も使用しましたが、警告: 角度を複数回ロードしようとしました。jquery を削除すると、再度警告が表示されることはありませんが、問題は解決しませんでした