Подкласс a Backbone.View Подкласс & amp; сохранить события

Вам нужно объявить пространство имен в XSLT и использовать его в выражениях XPath. Например ::

<xsl:stylesheet ... xmlns:my="http://www.mysite.com">

   <xsl:template match="/my:MyRoot"> ... </xsl:template>

</xsl:stylesheet>

Обратите внимание, что вы должны предоставить некоторый префикс, если вы хотите ссылаться на элементы из этого пространства имен в XPath. Хотя вы можете просто сделать xmlns="..." без префикса, и он будет работать для литеральных элементов результата, он не будет работать для XPath - в XPath, неподписанное имя всегда считается в пространстве имен с пустым URI, независимо от xmlns="..." в области.

21
задан alex 30 September 2014 в 05:28
поделиться

2 ответа

Другой вариант - иметь BaseView, который переопределяет реализацию Extend. Например:

var BaseView = Backbone.View.extend({
        //base view functionality if needed
    });
BaseView.extend = function(child){
    var view = Backbone.View.extend.apply(this, arguments);
    view.prototype.events = _.extend({}, this.prototype.events, child.events);
    return view;
};

Это автоматически расширит все ваши события для всего, что наследуется от BaseView.

27
ответ дан Will Shaver 30 September 2014 в 05:28
поделиться

Вот решение, которое хорошо сработало для меня. Вы можете использовать объект событий как в родительском, так и в подклассе, не расширяя в нем каждый подкласс. Просто расширьте его один раз в родительском классе:

APP.Views.GenericWizard = Backbone.View.extend({
  events: {
    'click .btn-prev'   : function(){}
  },
  initialize: function() {
    _(this.events).extend(APP.Views.GenericWizard.prototype.events);
  }
});

APP.Views.RegisterWizard = APP.Views.GenericWizard.extend({
  events: {
    'blur #username' : function(){}
  },
});

var registerWizard = new APP.Views.RegisterWizard();
console.log(registerWizard.events);
// Object {blur #username: function, click .btn-prev: function}
3
ответ дан tybro0103 30 September 2014 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: