猿问

大漠老师的BookStore中有没有人会将控制器部分代码抽取成服务?给我个参考

为什么我抽取的总是报错呢?

这里是?

TypeError: data.slice is not a function

var pagedData = data.slice((page - 1) * pageSize, page * pageSize);


这样抽取的-----》

//请尝试把BookListCtrl中加载书籍列表数据的部分抽出来作为一个服务
var bookServices = angular.module('BookServices', []);

bookServices.factory('bookTypService',function($http) {

    var doRequest = function(bookType, path) {
        return $http({
            method: 'GET',
            url: 'data/books' +bookType + '.json'
        });
    };
    
    return {
        bookTypeList: function(bookType) {
            return doRequest(bookType, 'bookTypeList');
        }
    };

});

在控制器else部分执行的代码为:?

 else {
              console.log("执行else...");
              console.log("book---->"+$stateParams.bookType);
       
              var data1=bookTypService.bookTypeList($stateParams.bookType);
           
              $scope.setPagingData( data1, page, pageSize);

还是报错。。。5555


第二种抽取方式:不会报错,但是获取不到数据库 第三方的js导入过了

//请尝试把BookListCtrl中加载书籍列表数据的部分抽出来作为一个服务
var bookServices = angular.module('BookServices', ['ngResource']);



    bookServices.factory('bookTypService', ['$resource','$stateParams',function($resource,$stateParams) {
        
        return $resource('data/books:bookTypeId.json',  {}, {
            query : {
                method : 'GET',
                params:{bookTypeId:$stateParams.bookType},
                isArray : true
            }
        });
    }]);

 

 $scope.setPagingData(  bookTypService.query(), page, pageSize); 


    发现无法取到值,特别纠结,有么有人给我指一条明路%>_<%


IT_BOY
浏览 1707回答 1
1回答

qq_流过的岁月_0

不会啊
随时随地看视频慕课网APP

相关分类

AngularJS
我要回答