Вам нужно объявить пространство имен в 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="..."
в области.
Другой вариант - иметь 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.
Вот решение, которое хорошо сработало для меня. Вы можете использовать объект событий как в родительском, так и в подклассе, не расширяя в нем каждый подкласс. Просто расширьте его один раз в родительском классе:
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}