AngularJS正在过滤搜索结果:Error: [ng:areq]
AngularJS Filteriing Search Result: Error: [ng:areq]
我试图在angularjs中过滤搜索结果,并在我的chrome控制台得到此错误:error: [ng:areq]
这是我的代码片段<div id="notebooks" ng-controller="NotebookListCtrl">
<input type="text" id="query" ng-model="query"/>
<select ng-model="orderList">
<option value="name">By name</option>
<option value="-age">Newest</option>
<option value="age">Oldest</option>
</select>
<ul id="notebook_ul">
<li ng-repeat="notebook in notebooks | filter:query | orderBy: orderList">
name: {{notebook.name}}<br/>
procesor: {{notebook.procesor}}<br/>
<div class="right top">{{notebook.age}}</div>
</li>
</ul>
<span>Number of notebooks: {{notebooks.length}}</span>
</div>
这是我做的哑铃http://plnkr.co/edit/P1DFr3fEuWiYGfC0k7bj?p=preview
一切似乎都很好,但我不知道为什么我得到上面的错误
angular.module("myApp",["ngSanitize"])
.controller('NotebookListCtrl', ['$scope',
function ($scope) {
$scope.notebooks = [
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2011},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2010},
{"name": "Toshiba",
"procesor": "Intel core 2 duo",
"age": 2008},
{"name": "HP",
"procesor": "Intel core 2 duo",
"age": 2012},
{"name": "Acer",
"procesor": "AMD",
"age": 2006},
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2009},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2008},
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2011},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2010},
{"name": "Toshiba",
"procesor": "Intel core 2 duo",
"age": 2008},
{"name": "HP",
"procesor": "Intel core 2 duo",
"age": 2012},
{"name": "Acer",
"procesor": "AMD",
"age": 2006},
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2009},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2008},
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2011},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2010},
{"name": "Toshiba",
"procesor": "Intel core 2 duo",
"age": 2008},
{"name": "HP",
"procesor": "Intel core 2 duo",
"age": 2012},
{"name": "Acer",
"procesor": "AMD",
"age": 2006},
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2009},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2008}
];
$scope.orderList = "name";
}
]);
如下所示正确定义控制器
更新:http://plnkr.co/edit/P1DFr3fEuWiYGfC0k7bj?p=preview
var app = angular.module("myApp",["ngSanitize"]);
app.controller('NotebookListCtrl',['$scope',function($scope){
$scope.notebooks = [
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2011},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2010},
{"name": "Toshiba",
"procesor": "Intel core 2 duo",
"age": 2008},
{"name": "HP",
"procesor": "Intel core 2 duo",
"age": 2012},
{"name": "Acer",
"procesor": "AMD",
"age": 2006},
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2009},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2008},
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2011},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2010},
{"name": "Toshiba",
"procesor": "Intel core 2 duo",
"age": 2008},
{"name": "HP",
"procesor": "Intel core 2 duo",
"age": 2012},
{"name": "Acer",
"procesor": "AMD",
"age": 2006},
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2009},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2008},
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2011},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2010},
{"name": "Toshiba",
"procesor": "Intel core 2 duo",
"age": 2008},
{"name": "HP",
"procesor": "Intel core 2 duo",
"age": 2012},
{"name": "Acer",
"procesor": "AMD",
"age": 2006},
{"name": "Lenovo",
"procesor": "Intel i5",
"age": 2009},
{"name": "Toshiba",
"procesor": "Intel i7",
"age": 2008}
];
$scope.orderList = "name";
}]);
错误是
Argument 'NotebookListCtrl' is not a function, got undefined
如果你在浏览器控制台中点击[ng:areq]旁边的url就可以找到
你得到这个错误是因为你没有以正确的方式定义控制器。AngularJS 1.2之后不允许"控制器作为全局函数"语法,你需要把它添加到你的模块中,像这样:
angular.module("myApp").controller('NotebookListCtrl',NotebookListCtrl);
要实现最小化安全注入,还应该执行以下操作
NotebookListCtrl.$inject = ['$scope'];
相关文章:
- angular.js:13424错误:[ng:areq]参数'fn'不是函数,getObject
- 在安卓版本 4.4.2 上运行时应用中断,抛出错误:[ng:areq]
- 错误:[ng:areq]参数'CompanyCtrl'不是函数,未定义
- Angular.js:13424错误:[ng:areq]参数'enfermerosController'
- 为什么我会得到这个错误:ng:areq错误参数
- AngularJS'ng:areq错误参数"{controller}不是函数“;,CodeIgnite
- angularjs[ng:areq]参数'fn'不是函数,在控制台中获取字符串时出错
- 错误:[ng:areq]参数'控制器名称'不是函数,未定义
- AngularJS - 为什么“错误:ng:areq Bad Argument”
- AngularJS - 处理错误错误:[ng:areq] 在此特殊情况下 (?)
- 错误: [ng:areq] 客户控制器不是未定义的函数
- 错误:[ng:areq] 参数“ScenarioViewCtrl”不是一个函数,未定义
- AngularJs Error: [ng:areq]
- $routeProvider配置路由抛出'未捕获错误:[ng:areq]参数'fn'不是函数,得
- 尝试在单独的文件中定义控制器时出现错误:ng:areq参数错误
- 错误:ng:areq错误参数:参数'registerController'不是函数,未定义
- 错误:[ng:areq]参数'GreetingController'不是函数,未定义
- Angular js-错误:ng:areq错误参数-
- 错误:[ng:areq]参数'meetupsController'不是函数,未定义
- 错误:[ng:areq]参数'ActsController'不是函数,未定义