Javascript 主干线/木偶试图让attachView工作

Javascript 主干线/木偶试图让attachView工作,javascript,backbone.js,marionette,Javascript,Backbone.js,Marionette,我这把小提琴说明了我的问题。我很确定我已经正确地设置了它,但我一直看到木偶不会渲染视图 var aApp = new Marionette.Application(); vTestSetup = Marionette.ItemView.extend({ template: "#tmplTest" }); var testView = new vTestSetup(); aApp.addRegions({ appRegion: "#dApp" }); aApp.appReg

我这把小提琴说明了我的问题。我很确定我已经正确地设置了它,但我一直看到木偶不会渲染视图

var aApp = new Marionette.Application();

vTestSetup = Marionette.ItemView.extend({
    template: "#tmplTest"
});

var testView = new vTestSetup();

aApp.addRegions({
    appRegion: "#dApp"
});

aApp.appRegion.attachView(testView);
aApp.appRegion.show(testView);

aApp.start();

基本上,如果页面上已经存在HTML,并且希望向其添加主干管理行为,则可以使用
attachView
。您需要做的只是:

  • 指定一个
    el
    属性,指示包含视图HTML的选择器
  • 实例化视图实例
  • 将视图附着到区域

  • 您可以在我的一篇博客文章(搜索attachView)中看到一个实际示例:

    您的JSFIDLE正在错误的元素中查找模板。它应该是
    #示例模板
    而不是
    #tmplTest
    。但是,一旦解决了这个问题,就不清楚你的问题是什么。如果您检查控制台,将得到一个
    未捕获引用错误:未定义contentPlacement
    错误。
    vTestSetup()
    是模型吗?如果是,请发布它的定义。它也没有在JSFiddleTL中定义;DR:您的JSFIDLE不完整。请立即完成。删除
    aApp.appRegion.attachView(testview)行使模板渲染良好。你不需要
    attachView()
    如果你在做
    show()
    你是对的,我的问题不一定是如何让视图显示,但是如果attachView不能像上面那样工作,为什么它会存在呢。我有一个更复杂的应用程序,我想附加可能稍后显示的视图。我仍在试图弄清楚attachView应该如何工作。视图中的HTML是否会移动(或被复制)到区域的容器中?不,HTML不会被触及(它需要已经存在于正确的位置)。与视图关联的Javascript事件只需附加到现有HTML即可。