Angular 1.3.xを使用すると、グローバル関数はコントローラーとして認識されません。何が問題なのですか?これを修正するにはどうすればよいですか?
function MyController() {
// etc
}
<div ng-controller="MyController"></div>
コンソールに次のエラーが表示されます。
エラー:[ng:areq] http://errors.angularjs.org/1.3.2/ng/areq?p0=MyController&p1=not%20a%20function%2C%20got%20undefined
ドキュメントによると:
現在の$ controllerProviderが($ controllerProvider.allowGlobals()を介して)グローバルを使用するように構成されている場合、これはグローバルにアクセス可能なコンストラクター関数の名前でもあります(非推奨)。
この変更はAngular1.3.0-beta.15(変更ログ)に到着しました。
これは、デフォルトでグローバル関数をコントローラーとして認識する古いバージョンからのAngularの動作の変更です。これは悪い習慣であり、とにかく使用すべきではありません。皮肉なことに、それらを使用するには、とにかくアプリに適切なセットアップを使用する必要があり、とにかくその時点でそれらを使用したくないでしょう。
だから、あなたはセットアップにアプリこの方法が必要になりますng-app="myApp
し、ng-controller="MyController"
angular.module('myApp', [])
.controller('MyController', function($scope) {
$scope.author = {
'name' : 'Mohammad Mohabati',
'title' : 'Web Design',
'company' : 'MohabatiPro'
};
})
;
allowGlobals
次に、次のように設定できます。
.config(function($controllerProvider) {
$controllerProvider.allowGlobals();
});
そのため、次のng-controller="SomeFunction"
ようなグローバル関数で機能します。
function SomeFunction($scope) { //etc
しかし、それをしないでください。:)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加