У меня есть манекен-марионетка ItemView, которая является родительской и имеет собственный шаблон. У меня есть ребенок этого вида, у которого есть другой шаблон.вставляем шаблон в другой шаблон
Я хотел бы, чтобы дочерний шаблон был введен в родительский шаблон в определенном месте, чтобы родительский «обертывал» ребенка.
define(['backbone', 'marionette', 'jquery', 'hbs!templates/partials/parentContents' ],
function(Backbone, Marionette, $, template) {
"use strict";
var ParentView = Backbone.Marionette.ItemView.extend({
template: template,
/* // contents of parent template
<div class="parent">
<div class="parent-head"></div>
<div class="parent-body"></div>
</div>
*/
events: {
"click .something": "doSomething"
},
initialize: function(){
var self = this;
// some initialization code
}
});
// extend events to child class
ParentView.extend = function(child) {
var view = Backbone.Marionette.ItemView.extend.apply(this, arguments);
view.prototype.events = _.extend({}, this.prototype.events, child.events);
return view;
};
}
);
Ребенок:
define(['jquery', 'hbs!templates/childView', 'backbone', 'views/cards/CardView'],
function ($, template, Backbone, ParentView) {
"use strict";
return ParentView.extend({
initialize: function(){
var self = this;
// do some other stuff
},
template: ????, // I want to get the parent's template and inject this template into it at "parent-body"
events: {
'keypress #something': 'doSomethingElse'
}
});
}
);
Я хотел бы решение, которое просто использует наследование, а не метод визуализации, но в любом порядке.
Спасибо, я взял эту концепцию и использовал метод визуализации, как вы предложили вместе с рулями, чтобы ввести разметку в родитель, а затем сделать его правильно. Не так, как я хотел это сделать, но он отлично работает. (Я искал решение, которое включало в себя наследование, чтобы захватить шаблоны и делать что-то в нем). – SoluableNonagon
Я обновил свой ответ, чтобы показать вам подход, который использует наследование вида. В примерах я использую предварительно скомпилированные представления руля. – tribe84