如何将Backbone.Marionette视图附加到现有元素而不创建额外元素

T N*_*yen 6 backbone.js backbone-views marionette

说我有这两个Backbone.Marionette视图:

var FooView = Backbone.Marionette.ItemView.extend({
  tagName: p,
  id: 'foo',
  template: this.templates.summary
});

var BarView = Backbone.Marionette.ItemView.extend({
  template: this.templates.summary
});
Run Code Online (Sandbox Code Playgroud)

然后我想在app区域中显示它们,如下所示:

App.contentRegion.show(new FooView/BarView());
Run Code Online (Sandbox Code Playgroud)

第一个视图将创建一个新视图

元素并将其附加到该地区.我认为第二种方式更像是标准的Backbone视图,并将自身附加到区域而不创建新元素,但它将其包装在标记中.有没有办法避免这种情况而不使用像setElement()这样的东西?

Dav*_*ulc 6

为此,您应该使用以下attachView方法:https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.region.md#call-attachview-on-region

  • 通常,您将附加已经显示的HTML视图(即,您正在使用javascript行为增强现有元素).您可以在我的旧教程中看到一个示例:http://davidsulc.com/blog/2012/05/06/tutorial-a-full-backbone-marionette-application-part-1/ Derick也有一个有趣的关于渐进增强的文章http://lostechies.com/derickbailey/2011/09/26/seo-and-accessibility-with-html5-pushstate-part-2-progressive-enhancement-with-backbone-js/谈论同样的概念. (2认同)