Angularjs未捕获错误:
我正在学习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模块,然后将所有组件连接到该特定模块。
码
function Ctrl($scope) { $scope.age = 24; } angular.module('app', []) .controller('Ctrl', ['$scope', Ctrl]);
特别是对于你的情况,AngularJS 1.3.14
有一些问题(降级到1.3.13
工作正常)。 虽然我宁愿你使用角度1.2.27 AngularJS 1.6.X,这是更稳定的版本和最新版本的AngularJS。
工作Plunkr
更新:
您可以通过在angular.config
允许全局控制器声明来将当前代码执行到工作状态。 但是这不是运行角度应用程序的正确方法。
function Ctrl($scope) { $scope.age = 24; } angular.module('app', []) .config(['$controllerProvider', function ($controllerProvider) { $controllerProvider.allowGlobals(); } ]);
你必须定义你的控制器
var app = angular.module('app', []); app.controller('Ctrl', ['$scope',function($scope) { $scope.age = 24; }]);
我自己在这个问题上陷入了一段时间。 按顺序检查以下内容: –
-
angular.js脚本的路径是正确的(无论你是从本地源代码还是作为外部资源在你的html中调用它)。
-
接下来,一旦你的angular.js是正确的,检查你的应用程序是否被初始化。
var app=angular.module('app',[])
//在你的app.js文件中<body ng-app="app">
//在你的html中 -
然后注册您的控制器与应用程序,并通过所有必要的注射
app.controller('myCtrl',function(){});
-
在你的HTML文件中调用你的JavaScript文件
<
script src="app.js"
> </script>
- angularJS的双和单个花括号之间的区别?
- 我可以inheritance父控制器的variables吗?
- AngularJS – 我如何做一个完整的页面加载redirect?
- AngularJSdynamic表单字段validation
- AngularJS HTML5模式 – 直接链接如何在没有服务器特定变化的情况下工作?
- Angular-animate – 未知的提供者:$$ asyncCallbackProvider < – $$ asyncCallback < – $ animate < – $ compile
- AngularJS路由没有哈希'#'
- 我可以使用_lodash在AngularJS中消除或限制观看的<input>?
- Angular和UI-Router,如何设置一个dynamic的templateUrl