Pergunta

Eu estou tentando obter uma marionete de layout para compor como um backbone de vista.Ou seja, eu tenho declarado um elemento e um id e eu quero ele para gerar um elemento dom, com base de que.Para tal simplista elemento, parece redundante ter que fazer um modelo de stub é só isso.

HTML:

<body><div id="page"></div></body>

Código de teste:

var HeaderBar = Backbone.Marionette.Layout.extend({
    tagName: "div",
    id: "headerBar"

});

/*========== APP Tests ============*/
App = Marionette.Application.extend({});

var MyApp = new App();
MyApp.addRegions({
    pageRegion: "#page"
});



var header = new HeaderBar();
MyApp.pageRegion.show(header);

No entanto, chamar de slides a partir do aplicativo lança o TemplateNotFoundError.

Eu estou procurando uma maneira de ter Marionete compor este, sem modelo e sem ter para controlar a função de renderização na biblioteca.

Foi útil?

Solução

Tente com

var HeaderBar = Backbone.Marionette.Layout.extend({
    template: _.template("<div></div>"),
    id: "headerBar"

});

Ver https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.renderer.md#using-pre-compiled-templates

Outras dicas

Layouts exigem um modelo, porque eles precisam para compor regiões dentro deles.Se você não estiver usando qualquer regiões com o seu layout, você não precisa usar um Layout;use um ItemView em vez disso:

var HeaderBar = Backbone.Marionette.ItemView.extend({
    tagName: "div",
    id: "headerBar"
});

Em seguida, usá-lo como normal para sua região.

Se você, no entanto, precisa regiões dentro HeaderBar, então sim, você precisa de um modelo com um Layout.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top