javascript - 与 Backbone.js Paginator 混淆

标签 javascript jquery backbone.js pagination underscore.js

我正在尝试使用 backbone.js paginator plugin 引入分页的requestPager

问题:设置扩展Backbone.Paginator.requestPagercollection后,我刷新了网页,并且JavaScript控制台抛出了错误:

未捕获类型错误:对象函数 (a){return new m(a)} 没有方法“结果”backbone.paginator.js:678

我对 Backbone 很陌生,不确定出了什么问题。是否是因为我使用了 fetch(),它出现在下面的错误屏幕截图中?我还注意到没有 GET 请求发送到后端。发生了什么事,我应该如何解决这个问题?谢谢!

JS代码

// Collection

window.ListingCollection = Backbone.Paginator.requestPager.extend({
    model: Listing,

    paginator_core: {
        type: 'GET',
        dataType: 'jsonp',
        url: 'api/listings'
    },

    paginator_ui: {
        firstPage: 0,
        currentPage: 0,
        perPage: 10,
        totalPages: 10
    },

    server_api: {
        '$filter': '',
        '$per_page': function() { return this.perPage; },
        '$current_row': function() { return this.currentPage * this.perPage; },
        '$order_by': 'listing_id'
    },

    parse: function(response){
        this.totalPages = Math.floor(response.total_rows / this.perPage);
    }

});

JS代码

// Router
var AppRouter = Backbone.Router.extend({
    routes: {
        '': 'listings',
        'listings': 'listings'
    },

    listings: function() {
        var self = this;

        // Load initial search results
        this.listingList = new ListingCollection();
        this.listingList.fetch({
            success: function() {
                self.listingListView = new ListingListView({ model: self.listingList });
                $('#listing_list table').append(self.listingListView.render().el);
            }
        });
        this.listingFilterView = new ListingFilterView();
    }
});

Javascript 控制台中的错误屏幕截图 enter image description here

enter image description here

JS 包含

<!-- JavaScript -->
<script src="assets/js/lib/jquery-1.7.1.min.js"></script>
<script src="assets/js/lib/underscore-min.js"></script>
<script src="assets/js/lib/backbone-min.js"></script>
<script src="assets/js/lib/backbone.paginator.js"></script>
<script src="assets/js/lib/bootstrap.js"></script>
<script src="assets/js/lib/bootstrap-datepicker.js"></script>
<script src="assets/js/app.js"></script>   

最佳答案

您可能正在使用旧版本的 Underscore。我使用 1.3.1,它没有 result() 方法。下载他们的新作品version 1.3.3 - 它有result()

关于javascript - 与 Backbone.js Paginator 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122583/

相关文章:

javascript - 如何使用 jquery 将新项目动态添加到此表单中的下拉列表中?

javascript - 为什么 .fetch() 未为集合定义?

javascript - 是否有用于 backbone.js 等的用于 javascript 的现代/轻量级布局库?

JavaScript 和闭包涉及外部变量

javascript - ng-repeat through object with value 作为数组 Angular

javascript - 从图像 URL 中提取颜色

php - Dropzone 在 Safari 和 IE 8 中不起作用

javascript - 覆盖主干中的获取方法

javascript - 未捕获错误 : Syntax error, 无法识别的表达式:输入[name=ms_harga[]]

javascript - 如何使用 html2canvas 从 svg 显示和保存图像为 jpg 或 png?