カスタムフィルターを追加しようとしていますが、次のコードを使用する場合:
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
まあ、これは単一ページのアプリケーションであり、使用されたソリューションは次のとおりでした。
他のコントローラーと同様に、コンテンツをAJAXでロードしてから呼び出します:
angular.bootstrap($('#your_div_loaded_in_ajax'),["myApp","other_module"]);
他のjsファイルをインクルードする前に、include angular行を最初に配置する必要があります
ローカルとリモートの参照が原因で同様の問題に直面しました
<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>
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>
@bmleiteがすでにコメントで言及しているように、おそらく、angular.jsをロードするのを忘れていたでしょう。
angularディレクティブでフィドルを作成し、angular.jsを含めない場合、Chrome console:Uncaught ReferenceError: angular is not defined
Railsとangle-Rails gemを使用している場合は、この行をapplication.jsに追加することで問題を簡単に修正できます(または、状況に応じて適切に適用できるもの) :
//= require angular-resource
これは、Finderで隠しファイルを表示せずに、ngBoilerplateのコピーアンドペーストをMacのプロジェクトにコピーアンドペーストしたためです。そのため、.bowerはngBoilerplateの他の部分とコピーされませんでした。したがって、bowerはリソースをベンダー(構成済み)の代わりにbower_components(defult)に移動し、私のアプリは角度付きになりませんでした。おそらくコーナーケースですが、ここで誰かを助けるかもしれません。
これは、angularjsを使用しているときに(フィルターを含むファイル)に対して 'async defer'を使用すると発生すると思います。
<script src="js/filter.js" type="text/javascript" async defer></script>
その場合は、「非同期遅延」を削除してください。
Googleからangular.jsファイルをダウンロードした場合は、Everyoneが 読み取りアクセス そうしないと、HTMLファイルによって読み込まれません。デフォルトでは、アクセスなしのアクセス許可でダウンロードされるように見えるため、次のようなメッセージも表示されます。
これは私を30分ほど悩ませました!