【问题标题】:Re-Render View after CLOSE关闭后重新渲染视图
【发布时间】:2013-11-17 08:53:40
【问题描述】:
define([
    'jquery',
    'underscore',
    'backbone',
    'collections/jobs',
    'text!templates/jobs/list.html'
], function($, _, Backbone, JobCollection, JobListTemplate){
    var JobWidget = Backbone.View.extend({
        el: '#bbJobList',
        initialize: function () {
            _.bindAll(this, 'detect_scroll');
            $(window).scroll(this.detect_scroll);
            this.isLoading = false;
            this.jobCollection = new JobCollection();
        },
        render: function () {
            this.loadResults();
        },
        loadResults: function () {
            var that = this;
            // we are starting a new load of results so set isLoading to true
            this.isLoading = true;

            this.jobCollection.fetch({
                success: function (jobs) {

                    $(that.el).append(_.template(JobListTemplate, {jobs: jobs.models, _:_}));
                    // Now we have finished loading set isLoading back to false
                    that.isLoading = false;
                }
            });
        },
        close: function(){
            this.remove();
            this.unbind();
        }
    });
    return JobWidget;
});

如何在关闭 RELOAD 渲染后移除它? 我打算重新渲染,更新数据在模型中,我将从控制器中取出(如果可能的话)

我试过了

this.render() 

【问题讨论】:

    标签: php jquery backbone.js underscore.js


    【解决方案1】:

    如果您打算重新渲染视图,则不应将 el 分配给原型,例如 el: '#bbJobList'

    在实例化视图时,将视图附加到元素上

     var view = new JobWidget();
     view.render();
     view.$el.appendTo('#bbJobList');
    

    在关闭从 DOM 中删除视图的视图后,要重新渲染视图,请再次实例化它。

    【讨论】:

    • 谢谢。现在我只能从我的模型中获取数据了 :)
    猜你喜欢
    • 2019-10-17
    • 2021-06-13
    • 2020-11-17
    • 1970-01-01
    • 2014-03-17
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多