首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写marionettejs渲染方法将空气制动器发送到airbrake.io

重写marionettejs渲染方法将空气制动器发送到airbrake.io
EN

Stack Overflow用户
提问于 2014-01-21 02:23:19
回答 1查看 231关注 0票数 0

我想发送空气刹车,因为渲染一个木偶视图到airbrake.io,但我不想让所有方法的视图尝试捕捉。有更好的方法吗?

目前的执行情况:

代码语言:javascript
复制
try {
  ...
} catch (e) {
  Airbrake.push(error);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-23 23:42:16

你应该使用类似于此的混音,

定义混合函数

代码语言:javascript
复制
    var asAirBreakView = function () {
        //note, this function assumes it's being called using 'apply' or 'call'
        //so context could be set to view's prototype.              

        //store original render function
        var originalRender = this.render

        //replace the render function with the wrapped render function
        this.render = function () {
            try {
                //call original render function with arguments passed in
               return originalOnRender.apply(this, arguments);
            } catch (e) {
                Airbrake.push(error);
                throw e;
            }
        };
    };

将混合器应用到视图中。

代码语言:javascript
复制
    var view =  Marionette.ItemView.extend({  
        //define your view here
    });

    //Apply the mixin to prototype of your view
    view = asAirBreakView.apply(view.prototype);

我非常喜欢您如何在javascript中向函数和类添加行为。在传统的继承语言(如C#或java )中,这是您无法理解的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21247970

复制
相关文章

相似问题

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