参数 'indexController' 不是函数,未定义
Argument 'indexController' is not a function, got undefined
之前有人问过这个问题,但没有回答我的问题。我是 angular 的新手,目前我只是在整理东西。我想让我的工厂在我的控制器内工作。但是,我的控制台中不断出现以下错误:
Argument 'indexController' is not a function, got undefined
我破坏了不同目录中的服务和控制器,我已将服务和控制器 <script>
添加到 index.html 文件。
我正在使用 IntelliJ 并使用它的插件来创建样板文件。
<body >
<ul class="menu">
<li><a href="#/view1">view1</a></li>
<li><a href="#/view2">view2</a></li>
</ul>
<!--[if lt IE 7]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
<div>
<p>Name: <input type="text" ng-model="name"> </p>
<h1>Hello {{name}}</h1> //this works just fine
</div>
<div ng-controller="indexController"> //doesn't appear
<ul>
<li ng-repeat="x in nameArray">
{{x.name + ' is : '+x.age+' years old'}}
</li>
</ul>
</div>
控制器:
angular.module('myApp',[])
.controller('indexController', ['$scope', 'Contact', function($scope, Contact){
var names = [
{name:'Drew' , age: 30},
{name:'Meike', age: 32},
{name:'Garry', age:64}
];
Contact.add(names);
$scope.nameArray = Contact.get();
}]);
工厂服务:
angular.module('myApp',[])
.factory('Contact', function ContactFactory(){
var personNames = [];
return{
add: function(name) {
personNames.add(name);
},
get: function(){
return personNames;
}
}
});
您不应该在 FactoryService 中再次重新创建 angular 模块 myApp
,当您再次创建 myApp
模块时,它会将旧的已注册组件刷新到该模块。因此,当您注册 FactoryService
时,它会删除旧的注册组件,在这里它会删除 indexController
控制器。当 ng-controller
指令被评估时,它会在模块内搜索 indexController
控制器并抛出错误
应该是
angular.module('myApp')
.factory('Contact', function ContactFactory(){
而不是
angular.module('myApp',[])
.factory('Contact', function ContactFactory(){
之前有人问过这个问题,但没有回答我的问题。我是 angular 的新手,目前我只是在整理东西。我想让我的工厂在我的控制器内工作。但是,我的控制台中不断出现以下错误:
Argument 'indexController' is not a function, got undefined
我破坏了不同目录中的服务和控制器,我已将服务和控制器 <script>
添加到 index.html 文件。
我正在使用 IntelliJ 并使用它的插件来创建样板文件。
<body >
<ul class="menu">
<li><a href="#/view1">view1</a></li>
<li><a href="#/view2">view2</a></li>
</ul>
<!--[if lt IE 7]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
<div>
<p>Name: <input type="text" ng-model="name"> </p>
<h1>Hello {{name}}</h1> //this works just fine
</div>
<div ng-controller="indexController"> //doesn't appear
<ul>
<li ng-repeat="x in nameArray">
{{x.name + ' is : '+x.age+' years old'}}
</li>
</ul>
</div>
控制器:
angular.module('myApp',[])
.controller('indexController', ['$scope', 'Contact', function($scope, Contact){
var names = [
{name:'Drew' , age: 30},
{name:'Meike', age: 32},
{name:'Garry', age:64}
];
Contact.add(names);
$scope.nameArray = Contact.get();
}]);
工厂服务:
angular.module('myApp',[])
.factory('Contact', function ContactFactory(){
var personNames = [];
return{
add: function(name) {
personNames.add(name);
},
get: function(){
return personNames;
}
}
});
您不应该在 FactoryService 中再次重新创建 angular 模块 myApp
,当您再次创建 myApp
模块时,它会将旧的已注册组件刷新到该模块。因此,当您注册 FactoryService
时,它会删除旧的注册组件,在这里它会删除 indexController
控制器。当 ng-controller
指令被评估时,它会在模块内搜索 indexController
控制器并抛出错误
应该是
angular.module('myApp')
.factory('Contact', function ContactFactory(){
而不是
angular.module('myApp',[])
.factory('Contact', function ContactFactory(){