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

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

angularjs - AngularJS でクリックを検出するには、ディレクティブまたはコントローラーを使用しますか?

aのすべてのクリックを追跡buttonしたいinput[type="submit"]

body タグにアタッチされたコントローラーを使用するのは理にかなっています。すべてのクリックと日付とタイムスタンプをそれぞれ追跡する必要があります。API の準備はできていますが、クリックをリッスンする方法がわかりません。

コントローラーはそれを行うのに良い方法だと思いましたが、私が読んだいくつかのことは、ディレクティブを使用することでした。基本的に body タグをディレクティブに変えます。

それは私には意味がありませんが、私はこれが初めてです。

どちらの場合も、クリックを検出するにはどうすればよいですか? 以下のディレクティブを使用しようとしていますが、起動しません。見つからないと言うdomElement

これが私の指示です。このようにすると、クリックを API に書き込むためのコントローラーは必要ないのでしょうか?

0 投票する
4 に答える
158 参照

javascript - コントローラーでサービスを呼び出すと、結果が 2 回取得されます

サービスも含む単純なコントローラーを作成しています。このサービスは json を返します。さて、私の問題は、コントローラーを介してリクエスト関数を呼び出して結果を出力すると、すべてのオブジェクトが 2 回取得されることです。

だから、これは今私のコードです:

json: http://pastebin.com/dTcNDQeA

問題は .success のどこかにあるに違いないと思いますが、具体的な理由はわかりません。

私の解決策:コントローラーのサービス呼び出しの周りに関数をラップすると、最終的にうまくいきました。理由はまだわかりません。

0 投票する
0 に答える
440 参照

javascript - AngularJs: Uncaught ReferenceError: $scope がデバッガー モードで定義されていません

次のコードがあります。

HTML


AngularJs


このシナリオでは、問題はありません。ただし、この行を変更すると、次のようになります。

$scope.message = $scope.newMessage;

と:

debugger;

次に、コンソールが開いている間にボタンをクリックして と書く$scopeと、次のエラーが表示されます。

Uncaught ReferenceError: $scope is not defined

だから私の質問は:

  • 関数内で$scopeを使用すると にアクセスでき、デバッグ モードではアクセスできない理由(関数のどこかで を使用していない場合)$scope$scope
  • あまりにもアクセスできない$httpため、この状況での作業方法$http

Jsfiddle

注:これは重複した質問かもしれませんが、この問題の直接的な説明と解決策は見つかりませんでした

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

angularjs - Angular UI Router を使用してコントローラーで $scope と 'this' を使用する

ui-routerについて$scope、ご利用にあたっては、this

controllerAs構文を使用している場合、つまり:

私のコントローラーでは、thisの代わりに使用してい$scopeます。したがって、ログインコントローラーには次のようなコードがあります。

しかし、$scopeからグローバルにブロードキャストされたイベントをリッスンするためにも使用しています。$rootScopeこれは、記憶が正しければ、交換されているにもかかわらず、 にthis属するメソッドがないためです。$scope

したがって、このイベントがブロードキャストされたときに、イベントブロードキャストをリッスンし$rootScope、 のような他のコントローラーロジックを呼び出しています。func2

ハンドラーfunc2内で呼び出したい場合はどうすればよいですか? $onコントローラーでこのようなものを初期化する規則を行う必要がありますか?

進行する最善の方法と、一般的な慣習がここにあることに興味があります。$scopeと の両方を使用するのは適切thisですか? 交換できるため、両者の主な違いは何ですか?

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

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 を削除すると、再度警告が表示されることはありませんが、問題は解決しませんでした