8

使用する

Backbone.View.extend

MyViewというバックボーンビューを作成しました。私の見解では、私はたくさんのカスタム関数を作成しました。私が抱えている問題は、MyViewを拡張する新しいバックボーンビューを作成する必要があることです。

新しいビューを作成してコードを複製したくない...継承を利用して機能を拡張したい...問題は、それを正確に行う方法がわからないことと、私も知らないことです。バックボーンでスーパー関数を呼び出す方法。

*編集-以下の回答に感謝しますが、親のメソッドを呼び出す方法がまだよくわかりません。例えば:

// in subView
{
initialize: function(){
// would like to do something like super.initialize()
 // here i would then declare variables exclusive to subview
}
4

4 に答える 4

14

私はあなたが探しているものは次のとおりだと思います:

 var NewView = MyView.extend({
     //Usual config goes on in here, and it will have inherited functions
     //And default properties from MyView
 });

または、スーパークラスの呼び出しを検討している場合は、ここに実装があります:http: //forrst.com/posts/Backbone_js_super_function-4co

于 2012-04-10T17:21:42.200 に答える
7
var SubView = MainView.extend({

    initialize: function(options) {
        this.constructor.__super__.initialize.apply(this);
    }

});
于 2012-11-14T02:25:19.063 に答える
0
var newView = MyView.extend()

于 2012-04-10T17:21:47.517 に答える
0

これがどれほど役立つかはわかりませんが、入力した場合は、このコーヒースクリプトをコンパイルしてください。

class BaseView extends Backbone.View

class MyView extends Baseview

これを生成します:

(function() {
  var BaseView, MyView,
    __hasProp = Object.prototype.hasOwnProperty,
    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; };

  BaseView = (function(_super) {

    __extends(BaseView, _super);

    function BaseView() {
      BaseView.__super__.constructor.apply(this, arguments);
    }

    return BaseView;

  })(Backbone.View);

  MyView = (function(_super) {

    __extends(MyView, _super);

    function MyView() {
      MyView.__super__.constructor.apply(this, arguments);
    }

    return MyView;

  })(Baseview);

}).call(this);
于 2012-04-10T17:22:28.680 に答える