我是Angularjs的新手,我正在学习一个教程,但我在标题中得到了错误。
HTML code:
<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 COntroller:
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
我做错了什么?我搜索其他解决方案,但似乎我的问题有点不同。
答案 0 :(得分:8)
原来我在布局页面中有以下html标签返回此错误
<html lang="en ng-app">
从标签中删除了ng-app,代码运行正常
答案 1 :(得分:5)
在我的情况下,我忘记了将一个控制器脚本添加到index.html
答案 2 :(得分:3)
当我拼错我的控制器名称时,我遇到了这种错误。它在js文件中大写,但不在html文件中的ng-controller标记中。
答案 3 :(得分:2)
有时,当我们没有正确地将模块/控制器绑定到DOM时,可能会发生这种情况。我遇到了同样的错误,我发现我的ng-app被分配了空白
<html ng-app="">
我需要提供模块名称。我给了它并且它有效!
<html ng-app="app">
答案 4 :(得分:2)
我在Angularjs控制器中使用Material Design对话框时出现此错误,但很难找到拼写错误:
templateUrl: 'template.html';
当我用正确的逗号替换分号时,它解决了问题。
templateUrl: 'template.html',
答案 5 :(得分:1)
有时我们在工厂,控制器和主模块中使用相同的模块名称。所以, 这是它会给出错误的主要原因错误:[ng:areq]参数,当你打电话给你的服务,控制器,工厂时,不要使用相同的模块名称。
答案 6 :(得分:1)
在检查并仔细检查所有建议后,我开车疯了几个小时。但事实证明,一旦我清除了我的Chrome浏览器数据(Cookie,托管的应用数据和缓存的图片和文件),错误就会消失。即使刷新也似乎没有清除所有列出的项目。
答案 7 :(得分:0)
我使用<html ngapp>
以及角1.4.8
将其更改为1.2.8并消除了错误。
我的HTML了
<div class ="container" ng-controller="AppCtrl">
我有一个带有函数
的controller.js文件 function AppCtrl(){
console.log("Hello from controller")
}
答案 8 :(得分:0)
就我而言:
<body ng-controller="CtrlWasNotFound"> <body></body </body>
app.js
返回了index.html的HTML(使用了gulp
并且遇到了配置问题答案 9 :(得分:0)
要解决这个问题,我必须发现我在Angular路线声明中错误拼写了控制器的名称:
.when('/todo',{
templateUrl: 'partials/todo.html',
controller: 'TodoCtrl'
})
答案 10 :(得分:0)
<sript
而不是
<script
;)同时链接controller.js。在我的情况下