angularjs工厂服务错误

时间:2015-08-30 05:29:21

标签: angularjs multidimensional-array angularjs-ng-repeat

我收到此错误

...([c,d,arguments]);return k}}if(!e)throw Error("No module: "+d);var b=[],c=[],j=a...

任何人都可以帮助解决这个问题。

<div ng-app="app">
        <div ng-controller="booksCtrl">
            <div ng-repeat="book in allBooks">
                <ul>
                    <li>{{book.title}}</li>
                    <li>{{book.author}}</li>
                    <li>{{book.year}}</li>
                </ul>
            </div>
        </div>
     </div>

..............................

(function(){

    angular.module('app').factory('dataService', dataService);

    function dataService(){
        return {
            getAllBooks : getAllBooks,
        };

        function getAllBooks(){
            return[
                {
                    book_id:1,
                    title:"hari potter",
                    author:"J.K. Rowling",
                    year:2009
                },
                {
                    book_id:2,
                    title:"The Cat in the Hat",
                    author : "DR. Seuss",
                    year : 1967
                },
                {
                    book_id:3,
                    title:"Encyclopedia",
                    author : "Donald j Sobol",
                    year : 1940
                }
            ];

        };
    };



}());


(function(){

    angular.module('app').controller('booksCtrl', booksCtrl);

    function booksCtrl($scope, dataService){
        $scope.allBooks = dataService.getAllBooks();
    }

}());

1 个答案:

答案 0 :(得分:0)

我认为您尚未初始化模块应用。您必须使用语法

初始化模块一次
angular.module('app', [])

在任何一个js文件中。

(function(){

angular.module('app',[]).controller('booksCtrl', booksCtrl);
function booksCtrl($scope, dataService){
 $scope.allBooks = dataService.getAllBooks();
}
}());

来自官方文档https://docs.angularjs.org/guide/module

  

请注意,使用angular.module(&#39; myModule&#39;,[])将创建模块myModule并覆盖任何名为myModule的现有模块。使用angular.module(&#39; myModule&#39;)来检索现有模块。