如果这是一个简单的问题,我很抱歉。我是新手,可能不了解要搜索的正确内容以找到答案。
我基本上遵循了这个 angularJS 教程http://www.youtube.com/watch?v=i9MHigUZKEM
除了建立一个连接到我的控制器的工厂外,我已经完成了所有这些。
这是工厂的代码:
demoApp.factory('simpleFactory', function(){
var people = [
{ name: 'Will', age: '30' },
{ name:'Jack', age:'26' },
{ name: 'Nadine', age: '21' },
{ name:'Zach', age:'28' }
];
var factory = {};
factory.getPeople = function() {
return people;
};
});
这是控制器:
demoApp.controller('FirstCtrl', ['$scope', 'simpleFactory', function ($scope, simpleFactory) {
$scope.people = simpleFactory.getPeople();
}]);
只需在 HTML 中简单重复一下:
Name:
<input type="text" ng-model="filter.name"> {{ nameText }}
<ul>
<li ng-repeat="person in people | filter:filter.name | orderBy: 'name'">{{ person.name }}- {{ person.age }}</li>
</ul>
我得到的错误是javascript控制台中的“TypeError:无法调用未定义的方法'getPeople'”。
注意:当我在控制器中硬编码数据对象时,这一切都可以正常工作,如下所示:
demoApp.controller('FirstCtrl', ['$scope', 'simpleFactory', function ($scope, simpleFactory) {
$scope.people = [
{ name: 'Will', age: '30' },
{ name:'Jack', age:'26' },
{ name: 'Nadine', age: '21' },
{ name:'Zach', age:'28' }
];
}]);