在app.js
我有:
(function(){
var app = angular.module("myApp", []);
})();
<{1>}中包含 process.js
之后的我有:
app.js
在我的(function(){
app.controller('ProcessController', ['$http', function($http){
this.something = "Test"
}]);
});
文件中,我有HTML
div
这在我的控制台中抛出错误:
<html class="no-js" lang="en" ng-app="myApp">
...
<div class="row" ng-controller="ProcessController">
我对角度很新,从未使用过像这样的多个文件。我做错了什么?
答案 0 :(得分:5)
在其他JS文件中使用angular.module("myApp")
&amp;不要忘记调用具有IIFE pattern意义的功能,这将有助于您使ProcessController
控制器可用。
<强>代码强>
(function(){
angular.module("myApp")
.controller('ProcessController', ['$http', function($http){
this.something = "Test"
}]);
})(); //<-- () function should get called to self execute it.
答案 1 :(得分:2)
将您的process.js
更改为:
(function(){
var app = angular.module("myApp");
app.controller('ProcessController', ['$http', function($http){
this.something = "Test"
}]);
})();
另请考虑使用语法ng-controller="ProcessController as process"
,以便在模板this.something
之后访问{{ process.something }}
变量。
答案 2 :(得分:1)
位于app.js的顶部
var app = angular.module('myApp', ['myApp.controllers']);
在processor.js的顶部
var app = angular.module('myApp.controllers', []);
答案 3 :(得分:0)
&#39;使用严格的&#39; ;定义JavaScript代码应该在&#34; strict模式&#34;中执行。 所以它首先需要声明然后定义。因此,如果您已在app.js&amp;中声明了该模块。将js添加到index.html但未注入mainApp模块,您有机会ngareq ControllerName不是函数或未定义。 希望如此有用。