【问题标题】:Vue js loop though object using v-for in templateVue js在模板中使用v-for循环对象
【发布时间】:2019-10-29 09:58:32
【问题描述】:

谁能帮我把下面的表达式转换成 vue js v-for 循环表达式。我在下面提供了一个使用值和属性名称的示例。

原创

<ul class="nav nav-pills">
    {% for opt, item in filterOptions %}
      <li class="dropdown" >
        <a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true"
          aria-expanded="false">{{opt}}</a>
        <div class="dropdown-menu">
        {% for i in item %}
          <a href="#">
            <div class="inner">
              <div class="checkbox">
                <label class="filter-label-item">
                  <input type="checkbox" data-prop="{{opt}}" value="{{i.value}}" {% if i.checked %} checked {% endif %}/>
                  <span class="cr"><i class="cr-icon fa fa-check"></i></span>
                  <span>{{i.value}} <span class="badge badge-dark">{{i.count}}</span></span>
                </label>
              </div>
            </div>
          </a>
        {% endfor %}
        </div>
      </li>
      {% endfor %}
    </ul>

到目前为止我做了什么

<ul class="nav nav-pills">
      <li class="dropdown" v-for="(value , propertyName) in filterOptions">
        <a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true"
          aria-expanded="false">{{propertyName}}</a>
        <div class="dropdown-menu" v-for="i in value.filterOptions">
          <a href="#">
            <div class="inner">
              <div class="checkbox">
                <label class="filter-label-item">
                  <input type="checkbox" data-prop="{{propertyName}}" value="{{i.value}}" {% if i.checked %} checked {% endif %} />
                  <span class="cr"><i class="cr-icon fa fa-check"></i></span>
                  <span>{{i.value}} <span class="badge badge-dark">{{i.count}}</span></span>
                </label>
              </div>
            </div>
          </a>
        </div> 
      </li>

数据

var filterOptions = {
        year: [{ value: '2019', checked: true, count: 10 }, { value: '2013', checked: false, count: 99 }, { value: '2017', checked: true, count: 10 }],
        model: [{ value: 'Explorer', checked: true, count: 8 }, { value: 'Ram 1500', checked: false, count: 4 }, { value: 'Piloto', checked: false, count: 10 }],
        priceRange: [{ value: '$10,000-$20,000', checked: false, count: 5 }, { value: '$20,000-$30,000', checked: false, count: 22 }, { value: '$30,000-$40,000', checked: false, count: 10 }],
        mileage: [{ value: '1-1000', checked: false, count: 10 }, { value: '1001-2000', checked: false, count: 64 }, { value: '2001-3000', checked: false, count: 10 }],
        bodyStyle: [{ value: 'Crew Cab Pickup', checked: false, count: 13 }, { value: 'Quad Cab Pickup', checked: false, count: 9 }, { value: 'Sport Utility', checked: true, count: 2 }]
    }

【问题讨论】:

    标签: javascript templates vue.js v-for


    【解决方案1】:
      <ul class="nav nav-pills">
        <li class="dropdown" v-for="(items, opt) in filterOptions">
          <a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">{{opt}}</a>
          <div class="dropdown-menu">
            <a href="#" v-for="item in items">
              <div class="inner">
                <div class="checkbox">
                  <label class="filter-label-item">
                      <input type="checkbox" :data-prop="opt" :value="item.value" :checked="item.checked"/>
                      <span class="cr"><i class="cr-icon fa fa-check"></i></span>
                      <span>{{item.value}} <span class="badge badge-dark">{{item.count}}</span></span>
                    </label>
                </div>
              </div>
            </a>
          </div>
        </li>
      </ul>
    

    【讨论】:

      猜你喜欢
      • 2019-12-16
      • 2020-07-01
      • 2021-01-06
      • 2017-12-01
      • 2018-07-12
      • 2021-07-16
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      相关资源
      最近更新 更多