【问题标题】:Pagination error after updating to backbonejs Latest version更新到backbonejs最新版本后出现分页错误
【发布时间】:2017-10-18 18:44:29
【问题描述】:

所以我正在学习backbonejs,使用nodecellar-rethinkdb示例作为练习

将 Backbone.js 和 Underscore.js 文件更新到最新版本后,我收到一条错误消息,提示“页面未定义”。相同的代码适用于 Backbone.js 0.9.2。所以我猜有些东西已经被弃用了。

这是给我错误的分页文件的代码:

window.WineListView = Backbone.View.extend({

    initialize: function () {
        this.render();
    },

    render: function () {
        var wines = this.model.models;
        var len = wines.length;
        var startPos = (this.options.page - 1) * 8;
        var endPos = Math.min(startPos + 8, len);

        $(this.el).html('<ul class="thumbnails"></ul>');

        for (var i = startPos; i < endPos; i++) {
            $('.thumbnails', this.el).append(new WineListItemView({model: wines[i]}).render().el);
        }

        $(this.el).append(new Paginator({model: this.model, page: this.options.page}).render().el);

        return this;
    }
});

window.WineListItemView = Backbone.View.extend({

    tagName: "li",

    initialize: function () {
        this.model.bind("change", this.render, this);
        this.model.bind("destroy", this.close, this);
    },

    render: function () {
        $(this.el).html(this.template(this.model.toJSON()));
        return this;
    }

});

能否请您告诉我代码无法与最新版本一起使用的原因,并修复它以与最新的主干.js 一起使用

提前致谢。

【问题讨论】:

    标签: javascript jquery backbone.js pagination


    【解决方案1】:

    尝试自己保留对选项的引用,我认为新版本的主干不会保留它。

    Backbone.View.extend({
    
    initialize: function (options) {
        //add this
        this.options = options; // or this.page = options.page and update render accordingly
        this.render();
    },
    

    【讨论】:

    • 谢谢!添加两个作品:initialize: function (options) { this.options = options; this.page = options.page; this.render(); },
    • 但这两个选项都可以吗?或者我可以将其修复为仅使用 1 吗?因为当我只使用:this.page = options.page;我收到一条错误消息,提示未定义选项
    • @RocketFuel 当您使用 second 时,您需要像$(this.el).append(new Paginator({model: this.model, page: this.page}).render().el); 一样更新以下行,理想情况下,只要视图存在于内存中,您就不需要保留对整个选项对象的引用,所以只需保持this.page就够了
    猜你喜欢
    • 2021-08-19
    • 2022-06-17
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 2020-05-25
    • 2023-02-09
    相关资源
    最近更新 更多