私はAngularjsが初めてで、チュートリアルに従っていましたが、タイトルにエラーがありました。
HTMLコード:
<div data-ng-app="myApp">
<div data-ng-controller="MyCtrl">
<form>
<table>
<tr style="font-weight: bold">
<td>ID</td>
<td>Name</td>
<td>Surname</td>
<td>House</td>
<td>Address</td>
<td>Locality</td>
<td>Contact</td>
<td>Contact 2</td>
<td>Contact 3</td>
<td>Reply</td>
<td>Edit</td>
</tr>
<tr data-ng-repeat="person in persons">
<td>{{person.ID}}</td>
<td>{{person.Name}}</td>
<td>{{person.Surname}}</td>
<td>{{person.House}}</td>
<td>{{person.Address}}</td>
</tr>
</table>
</form>
</div>
</div>
<script type="text/javascript">
//Defining a Angular module
var myApp = angular.module('myApp', []);
//Defining a Angular Controller
myApp.controller('MyCtrl', ['$scope', '$http', function ($scope, $http) {
//Retrieving the List of people
GetPersons();
//Displaying the Save button
$scope.DisplaySave = true;
function GetPersons() {
//Defining the $http service for getting the people
$http({
method: 'GET', url: '/api/data'
}).
success(function (data) {
if (data != null || data != 'undefined') {
//Assigning people data to the $scope variable
$scope.persons = data;
//Clearing the Person object in create context and Showing default Gender(Male) Checked
$scope.newperson = {
Id: ''
};
}
})
.error(function (error) {
//Showing error message
$scope.status = 'Unable to retrieve people' + error.message;
});
}
} ]);
</script>
APIコントローラー:
public class DataController : ApiController
{
//GET api/data
public IEnumerable<CommonLayer.Telesales> GetPeople()
{
return new BusinessLayer.Telesales().getUserSession(User.Identity.Name).AsEnumerable();
}
エラーの詳細:
magicplayer:init: set version: 1.0.1
adme: onDOMStart: got code: user_key=f52009a2292c2b524ac9af2801caef4c443d7cdc7697dff171f77b3c81cd26fa gender=1 age=4
Error: [ng:areq] Argument 'MyCtrl' is not a function, got undefined
http://errors.angularjs.org/1.2.18/ng/areq?p0=MyCtrl&p1=not%20a%20function%2C%20got%20undefined
at http://localhost:12570/Scripts/angular.js:78:12
at assertArg (http://localhost:12570/Scripts/angular.js:1475:11)
at assertArgFn (http://localhost:12570/Scripts/angular.js:1485:3)
at http://localhost:12570/Scripts/angular.js:7198:9
at http://localhost:12570/Scripts/angular.js:6592:34
at forEach (http://localhost:12570/Scripts/angular.js:327:20)
at nodeLinkFn (http://localhost:12570/Scripts/angular.js:6579:11)
at compositeLinkFn (http://localhost:12570/Scripts/angular.js:6028:13)
at compositeLinkFn (http://localhost:12570/Scripts/angular.js:6031:13)
at compositeLinkFn (http://localhost:12570/Scripts/angular.js:6031:13)
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:12570/Images/accent.png
onMessageFromBackground: method=statPixel
私は何を間違えていますか?私は他のソリューションを検索しますが、私の問題は少し違うようです。
私が持っていたことがわかり、このエラーを返していたレイアウトページの次のhtmlタグ
<html lang="en ng-app">
タグからng-appを削除し、コードは完全に機能します
私の場合、index.htmlにコントローラースクリプトを追加するのを忘れていました
コントローラ名のスペルを間違えたときに、この種のエラーが発生しました。 jsファイルでは大文字ですが、htmlファイルのng-controllerタグでは大文字ではありません。
これは、モジュール/コントローラーを適切にDOMにバインドしていない場合に発生することがあります。私は同じエラーになり、ng-appが空白に割り当てられていることがわかりました
<html ng-app="">
モジュール名を提供する必要がありました。私が与えた、それは働いた!
<html ng-app="app">
私はAngularjsコントローラのMaterial Designダイアログを使用して、タイプミスを見つけるのが非常に難しいこのエラーを受け取りました:
templateUrl: 'template.html';
セミコロンを適切なコンマに置き換えると、問題は解決しました。
templateUrl: 'template.html',
私はすべての提案を確認し、再確認した後、数時間にわたってこれに夢中になりました。しかし、Chromeブラウザーデータ(Cookie、ホストされているアプリデータ、キャッシュされた画像とファイル))をクリアすると、エラーは消えたことが判明しました。十分にリストされたアイテム。
工場、コントローラー、メインmodule.soで同じモジュール名を使用する場合があります。これがエラーError:[ng:areq]引数を与える主な理由です。サービス、コントローラー、工場の呼び出し時に同じモジュール名を使用しないでください。
_<html ngapp>
_をangular 1.4.8と一緒に使用しました
1.2.8に変更し、エラーを取り除きました。
私のhtmlには_<div class ="container" ng-controller="AppCtrl">
_がありました
そして、私は関数を持つcontroller.jsファイルを持っていました
function AppCtrl(){ console.log("Hello from controller") }
私の場合:
<body ng-controller="CtrlWasNotFound"> <body></body </body>
app.js
はindex.htmlのHTMLを返しました(gulp
を使用しており、構成の問題がありました<sript
の代わりに
<script
;)controller.jsのリンク中。私の場合
この問題を解決するには、Angular routes:
.when('/todo',{
templateUrl: 'partials/todo.html',
controller: 'TodoCtrl'
})