Javascript AngularJS筛选搜索结果:错误:[ng:areq]
我试图在angularjs中过滤搜索结果,但在我的chrome控制台上出现此错误:错误:[ng:areq] 这是我的代码片段Javascript AngularJS筛选搜索结果:错误:[ng:areq],javascript,angularjs,Javascript,Angularjs,我试图在angularjs中过滤搜索结果,但在我的chrome控制台上出现此错误:错误:[ng:areq] 这是我的代码片段 <div id="notebooks" ng-controller="NotebookListCtrl"> <input type="text" id="query" ng-model="query"/> <select ng-model="orderList"> <option value="name">B
<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>
按姓名
最新的
最老的
-
名称:{{notebook.name}}
procesor:{{notebook.procesor}}
{{notebook.age}
笔记本数量:{{notebes.length}
这是我所做的一次重击
似乎一切正常,但我不知道为什么会出现上述错误。错误是
Argument 'NotebookListCtrl' is not a function, got undefined
如果您在浏览器控制台中单击[ng:areq]旁边,则可以找到
出现此错误是因为您没有以正确的方式定义控制器。AngularJS 1.2之后不允许使用“控制器作为全局函数”语法,而是需要将其添加到模块中,如下所示:
angular.module("myApp").controller('NotebookListCtrl',NotebookListCtrl);
要进行缩小安全注射,还应执行以下操作
NotebookListCtrl.$inject = ['$scope'];
正确定义控制器,如下所示 更新:
@JnG。是的,你可以,尽管你在重复。当然要使用“ng src”指令,它为您视图中的img标签提供图像路径。我已经找到了解决方案!谢谢你的回答是方法是可以的。
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";
}]);
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";
}
]);