私はAngular.jsを学んでいますが、この単純なコードの何が問題なのか理解できません。見た目は良いようですが、次のエラーが表示されます。
**Error**: Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.14/$injector/modulerr?p0=app&p1=Error%3A%20…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.14%2Fangular.min.js%3A17%3A381)
ng-app="app"
を追加する前(私はng-app
のままにしていました)、次のエラーが発生していました。何故ですか?
Error: [ng:areq] http://errors.angularjs.org/1.3.14/ng/areq?p0=Ctrl&p1=not%20a%20function%2C%20got%20undefined
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:6:417
at Sb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:19:510)
at tb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:20:78)
at $get (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:75:331)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:57:65
at s (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:7:408)
at A (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:56:443)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:299)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:316)
<!doctype html>
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
</head>
<body>
<div ng-controller="Ctrl">
<input ng-model="name">
<h1>{{name}}</h1>
<h2>{{age}}</h2>
</div>
<script>
var Ctrl = function($scope)
{
$scope.age = 24;
};
</script>
</body>
</html>
AngularJSバージョン1.3のグローバルコントローラー関数宣言が無効になった後
最初にAngularJSモジュールを作成してから、その特定のモジュールにすべてのコンポーネントを添付する必要があります。
[〜#〜] code [〜#〜]
function Ctrl($scope) {
$scope.age = 24;
}
angular.module('app', [])
.controller('Ctrl', ['$scope', Ctrl]);
具体的には、AngularJS1.3.14
(1.3.13
は正常に動作します)。使用したいのですが 角度1.2.27 AngularJS1.6.X。これは、AngularJSのより安定したバージョンおよび最新リリースです。
UPDATE:
angular.config
内でグローバルコントローラ宣言を許可することにより、現在のコードを動作状態にすることができます。しかし、これはangular application。を実行する正しい方法ではありません。
function Ctrl($scope) {
$scope.age = 24;
}
angular.module('app', [])
.config(['$controllerProvider',
function ($controllerProvider) {
$controllerProvider.allowGlobals();
}
]);
私はしばらくの間、この問題に巻き込まれました。次の順序で確認してください:-
Angular.jsスクリプトへのパスは正しいです(HTMLでローカルソースから呼び出すか、外部リソースとして呼び出すか)。
次に、angle.jsが正しい場合は、アプリが初期化されているかどうかを確認します。
var app=angular.module('app',[])
// app.jsファイル内
_<body ng-app="app">
_ // html
次に、コントローラーをアプリに登録し、必要なすべての注入を渡します
app.controller('myCtrl',function(){});
Htmlファイルでjavascriptファイルを呼び出します
_<script src="app.js"></script>
_
コントローラーを定義する必要があります
var app = angular.module('app', []);
app.controller('Ctrl', ['$scope',function($scope) {
$scope.age = 24;
}]);
ng-app="app_name"
defineは次と一致する必要があります
var app=angular.module(
'app_name'
,[])
<html ng-app="myApp">
<body>
<div ng-controller="Ctrl">
<input ng-model="name">
<h1>{{name}}</h1>
<h2>{{age}}</h2>
</div>
<script>
var app = angular.module('myApp',[]); // same to the above define appName
app.controller('Ctrl',function($scope){
$scope.age=24; // initialize age by injecting scope
});
</script>
</body>
<html>
詳細については、 こちら をご覧ください