首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主干继承,合并render()函数

主干继承,合并render()函数
EN

Stack Overflow用户
提问于 2013-07-03 17:15:10
回答 1查看 1.9K关注 0票数 3

所以我现在的情况是:

代码语言:javascript
复制
app.Ui.ModalView = Backbone.View.extend({
    events: {

    },

    initialize: function() {

    },

    render: function() {
        var that = this;
        var model = this.model.toJSON();

        that.$el.html(that.template(_.extend(this.params || {}, {
            model: model,
        })));
        return this;
    }
});

然后是继承的视图:

代码语言:javascript
复制
app.Views.childView = kf.Ui.ModalView.extend({

    template: JST["templates/app/blah/blah-edit.html"],
    events: {

    },
    initialize: function() {
        var that = this;
        this.events = _.extend({}, app.Ui.ModalView.prototype.events, this.events);
        app.Ui.ModalView.prototype.initialize.apply(this, arguments);
    },

render: function(){
// add extra logic in this render function, to run as well as the inherited render function?
}

});

所以,我不想重写父级的render(),但是要给它添加额外的功能,我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-03 17:20:04

有两种方法可以做到这一点:要么你可以通过在基类中创建一个“呈现钩子”来添加对重写行为的显式支持,要么你必须从超类方法中调用重写的基方法:

基类中的呈现挂钩:

代码语言:javascript
复制
app.Ui.ModalView = Backbone.View.extend({
  render: function() {
    //if this instance (superclass) defines an `onRender` method, call it
    if(this.onRender) this.onRender();

    //...other view code
  }
}

app.Views.childView = kf.Ui.ModalView.extend({
  onRender: function() {
    //your custom code here
  }
});

从超类调用基类方法

代码语言:javascript
复制
app.Views.childView = kf.Ui.ModalView.extend({
  render: function() {
    //your custom code here

    //call the base class `render` method
    kf.Ui.ModalView.prototype.render.apply(this, arguments);
  }
});
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17444089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档