代码之家  ›  专栏  ›  技术社区  ›  cbfranca

聚合物中的嵌套模板

  •  1
  • cbfranca  · 技术社区  · 9 年前

    我正在尝试将嵌套模板与聚合物一起使用,但我无法获取具有该类的所有元素 menu--item__has_submenu .

    代码:

    <template>
       <nav class="page-nav">
         <button class="menu--link close_menu" on-click="_toggleMenu">
           <div class="menu--icon">
             <br-icons class="nav-btn-icon" icon="br-icons:close"></br-icons>
           </div>
         </button>
         <ul class="menu js-menu">
           <template is="dom-repeat" items="{{items}}">
             <li class="menu--item menu--item__has_submenu" on-click="_toggleSubmenu">
               <a href="{{item.link}}" class="menu--link" title="{{item.label}}">
                 <div class="menu--icon" data-icon="{{item.icon}}">
                   <br-icons icon="br-icons:user"></br-icons>
                 </div>
                 <span class="menu--text">{{item.label}}</span>
               </a>            
               <ul class="submenu">
                 <template is="dom-repeat" items="{{item.submenu}}">
                   <li class="submenu--item">
                     <a href="{{item.link}}" class="submenu--link">{{item.label}}</a>
                   </li>
                 </template>
               </ul>
             </li>
           </template>
         </ul>
       </nav>
     </template>
    
    
    Polymer({
       is: 'br-nav',
       properties: {
         items: {
           type: Array,
           value: []
         }
       },
    
       ready: function () {           
    
       },
    
       _toggleMenu: function () {
         Polymer.dom(this).classList.toggle('page-nav__opened');
       },
    
       _toggleSubmenu: function(e){
         console.log(Polymer.dom(this).querySelectorAll('menu--item__has_submenu'));
         //returns empty array
       },
    
     });
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   cbfranca    9 年前

    我得到了它!

    我设置了 ul 标记,然后执行以下操作:

    _toggleSubmenu: function(e){
       console.log(Polymer.dom(this.$.ulId).querySelectorAll('.menu--item__has_submenu'));
       //returns an array of elements
    
    },