web-dev-qa-db-ja.com

AngularJs ReferenceError:angularは定義されていません

カスタムフィルターを追加しようとしていますが、次のコードを使用する場合:

angular.module('myApp',[]).filter('startFrom', function() {
    return function(input, start) {
        start = +start; //parse to int
        return input.slice(start);
    }
});

ただし、そうすると、firebugで「ReferenceError:angular is not defined」と表示されます。

残りのアプリケーションは正常に動作しています。タグhtmlではなくタグdivでng-appを使用しています。 https://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular。 js

16
FAvIo41

まあ、これは単一ページのアプリケーションであり、使用されたソリューションは次のとおりでした。

他のコントローラーと同様に、コンテンツをAJAXでロードしてから呼び出します:

angular.bootstrap($('#your_div_loaded_in_ajax'),["myApp","other_module"]);
5
FAvIo41

他のjsファイルをインクルードする前に、include angular行を最初に配置する必要があります

46
Vũ Ngô

ローカルとリモートの参照が原因で同様の問題に直面しました

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.js"></script>
<script src="lib/js/ui-grid/3.0.7/ui-grid.js"></script>

Ui-grid.jsはangular.jsに依存しているため、ui-gridはロードされるまでにangle.jsを必要とします。ただし、上記の場合、anglejsが[インターネットから]ロードされる前に、ui-grid.js [ローカルに保存された参照ファイル]がロードされます。

Angle.jsとui-gridの両方をローカルで参照し、ui-gridの前にangular.jsを宣言していた場合、問題は解決しました

<script src="lib/js/angularjs/1.4.3/angular.js"></script>
<script src="lib/js/ui-grid/3.0.7/ui-grid.js"></script>
9
nsk

Jsファイル(angular.min.js)がHTMLファイルで最初に参照されることを常に確認してください。例えば:

-----------------この参照は[〜#〜] throw [〜#〜] error ----------- --------------

< script src="otherXYZ.js"></script>
< script src="angular.min.js"></script>

-----------------この参照は[〜#〜] work [〜#〜]期待どおり---------- ---------

< script src="angular.min.js"></script>
< script src="otherXYZ.js"></script>
3

@bmleiteがすでにコメントで言及しているように、おそらく、angular.jsをロードするのを忘れていたでしょう。

angularディレクティブでフィドルを作成し、angular.jsを含めない場合、Chrome console:Uncaught ReferenceError: angular is not defined

2
Mark Rajcok

Railsとangle-Rails gemを使用している場合は、この行をapplication.jsに追加することで問題を簡単に修正できます(または、状況に応じて適切に適用できるもの) :

//= require angular-resource
2
Timo

これは、Finderで隠しファイルを表示せずに、ngBoilerplateのコピーアンドペーストをMacのプロジェクトにコピーアンドペーストしたためです。そのため、.bowerはngBoilerplateの他の部分とコピーされませんでした。したがって、bowerはリソースをベンダー(構成済み)の代わりにbower_components(defult)に移動し、私のアプリは角度付きになりませんでした。おそらくコーナーケースですが、ここで誰かを助けるかもしれません。

1
Michael Bushe

これは、angularjsを使用しているときに(フィルターを含むファイル)に対して 'async defer'を使用すると発生すると思います。

<script src="js/filter.js" type="text/javascript" async defer></script>

その場合は、「非同期遅延」を削除してください。

0
Elad Amsalem

Googleからangular.jsファイルをダウンロードした場合は、Everyoneが 読み取りアクセス そうしないと、HTMLファイルによって読み込まれません。デフォルトでは、アクセスなしのアクセス許可でダウンロードされるように見えるため、次のようなメッセージも表示されます。

GET http://localhost/myApp/js/angular.js

これは私を30分ほど悩ませました!

0
Chris