検索

ホームページ  >  に質問  >  本文

angular.js - 在使用Angular开发中如何将数据注入$rootScope

另外,是否有类似于main.js的那种js,里面可以去定义全局变量。例如var http = "www.xxxx.com/",可以使得其他的Ctrl.js,都可以调用。

PHP中文网PHP中文网2744日前607

全員に返信(5)返信します

  • 高洛峰

    高洛峰2017-05-15 16:55:43

    その考えは間違っています、angular中不需要定义全局变量。你的数据应该通过service, factory, providerそれを提供します。
    そして、これらは依存関係を注入できるため、グローバル変数はまったく必要ありません

    返事
    0
  • PHPz

    PHPz2017-05-15 16:55:43

    $rootScope はオブジェクトであり、$rootScope.xxx='';

    の形式でグローバル変数にバインドできます。

    返事
    0
  • 某草草

    某草草2017-05-15 16:55:43

    @leftstick は正しいです。AngularJS は依存関係注入スタイルを使用してアプリケーション フレームワーク全体を構造化します。グローバル変数を宣言するのではなく、サービスにすることが最善です。こうすることで多くの問題を回避できます:

    1. 名前の競合。 JavaScript で名前の競合が発生しても、警告は表示されません。プロジェクトが小さい場合、発生する可能性は低くなりますが、デバッグは非常に困難です。
    2. 初期化シーケンス。たとえば、ACtrl でグローバル変数 window.a を定義する場合、それを BCtrl で使用する場合は、次のことを確認する必要があります。 ACtrlBCtrl の前に実行されますが、これは多くの場合実装が難しく、論理的に混乱を招くことさえあります。 ACtrl中定义了一个全局变量window.a,比如你想在BCtrl中使用它,那么你需要保证ACtrlBCtrl之前得到执行,这往往是不好实现,甚至逻辑混乱的。

    在Angular中,最合理的办法是把a做成一个aService,注入到ACtrlBCtrl

    Angular では、最も合理的な方法は、aaService にし、それを ACtrlBCtrl に注入することです。の間で。

    サービスの定義方法と、モジュール、サービス、ファクトリー、プロバイダー間の関係については、このブログを参照してください:

    http://harttle.github.io/2015/06/07/angular-module.html🎜

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-15 16:55:43

    リーリー

    返事
    0
  • 怪我咯

    怪我咯2017-05-15 16:55:43

    angularjs2 がリリースされました

    返事
    0
  • キャンセル返事