另外,是否有类似于main.js的那种js,里面可以去定义全局变量。例如var http = "www.xxxx.com/"
,可以使得其他的Ctrl.js,都可以调用。
高洛峰2017-05-15 16:55:43
その考えは間違っています、angular
中不需要定义全局变量。你的数据应该通过service
, factory
, provider
それを提供します。
そして、これらは依存関係を注入できるため、グローバル変数はまったく必要ありません
某草草2017-05-15 16:55:43
@leftstick は正しいです。AngularJS は依存関係注入スタイルを使用してアプリケーション フレームワーク全体を構造化します。グローバル変数を宣言するのではなく、サービスにすることが最善です。こうすることで多くの問題を回避できます:
ACtrl
でグローバル変数 window.a
を定義する場合、それを BCtrl
で使用する場合は、次のことを確認する必要があります。 ACtrl
は BCtrl
の前に実行されますが、これは多くの場合実装が難しく、論理的に混乱を招くことさえあります。 ACtrl
中定义了一个全局变量window.a
,比如你想在BCtrl
中使用它,那么你需要保证ACtrl
在BCtrl
之前得到执行,这往往是不好实现,甚至逻辑混乱的。在Angular中,最合理的办法是把a
做成一个aService
,注入到ACtrl
和BCtrl
a
を aService
にし、それを ACtrl
と BCtrl
に注入することです。の間で。 サービスの定義方法と、モジュール、サービス、ファクトリー、プロバイダー間の関係については、このブログを参照してください:
http://harttle.github.io/2015/06/07/angular-module.html🎜