Backbone.js 尝试使用引导和木偶、兄弟标记呈现动态下拉列表

Backbone.js 尝试使用引导和木偶、兄弟标记呈现动态下拉列表,backbone.js,marionette,backbone-views,Backbone.js,Marionette,Backbone Views,这是bootstrap下拉列表所需的基本代码 <div class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">Dropdown trigger</a> <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> <li role="presentation"&g

这是bootstrap下拉列表所需的基本代码

<div class="dropdown">
  <a class="dropdown-toggle" data-toggle="dropdown" href="#">Dropdown trigger</a>
  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
    <li role="presentation">
      <a role="menuitem" tabindex="-1" href="#">{{model.name}}</a>
    </li>
  </ul>
</div>

    这就是我需要作为菜单项(文件、编辑等)呈现的代码。问题是包含菜单列表项的同级标记

    我会用这样的方式:

    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Dropdown trigger</a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"></ul>
    
    
    
      然后我想将菜单列表项呈现到“ul.dropdown menu”元素中:

      <a class="dropdown-toggle" data-toggle="dropdown" href="#">{{name}}</a>
      <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"></ul>
      
    • 以下是我的木偶图:

      <li role="presentation">
         <a role="menuitem" tabindex="-1" href="#">{{name}}</a>
      </li>
      
      var menuItem=marionete.ItemView.extend({
      标记名:“a”,
      属性:{
      “类”:“下拉切换”,
      “数据切换”:“下拉列表”,
      'href':'#'
      },
      初始化:函数(){
      这个。render();
      },
      render:function(){
      this.$el.html('test')。在('bam?')之后;
      归还这个;
      }
      });
      
      每当我调用render函数并尝试在创建时设置的this.el之外操作数据时,它永远不会附加在标记之后。仅在内部(因此我在a标记中看到'test',而不是'bam?'。有人知道如何处理兄弟元素吗

      我对主干网/木偶网也没有那么丰富的经验,所以可能有更好的方法来解决这个问题,我只是不确定。

      我会使用一个来完成这项工作,而不会覆盖渲染

      var menuItem = Marionette.ItemView.extend({
          tagName: 'a',
          attributes: {
              'class': 'dropdown-toggle',
              'data-toggle': 'dropdown',
              'href': '#'
          },
      
          initialize: function() {
              this.render();
          },
      
          render: function() {
              this.$el.html('test').after('<b>bam?</b>');
      
              return this;
          }
      });
      
      我发现了一个使用主干线的一般经验法则。木偶是,如果你在操作$el,那么通常有更好的方法来操作。

      var menuItem = Marionette.ItemView.extend({
          tagName: 'a',
          attributes: {
              'class': 'dropdown-toggle',
              'data-toggle': 'dropdown',
              'href': '#'
          },
      
          initialize: function() {
              this.render();
          },
      
          render: function() {
              this.$el.html('test').after('<b>bam?</b>');
      
              return this;
          }
      });
      
      我发现了一个使用主干线的一般经验法则。木偶是,如果你在操纵$el,那么通常有更好的方法