簡単な質問ですみません。私は初心者で、答えを見つけるために検索する正しいことをおそらく理解していません。
私は基本的にこの 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' }
];
}]);