【问题标题】:Vue.js: Sort a list based on methodVue.js:根据方法对列表进行排序
【发布时间】:2017-09-30 14:12:28
【问题描述】:

我正在获取一些原始数据并显示项目列表。每个项目都有一个复杂的属性,我使用方法(不是计算属性)生成。该属性可能会随着用户输入而改变。是否可以根据该属性对列表中的项目进行排序?

HTML:

<ul>
  <li v-for="item in items">
    <span>{{ calculateComplexProperty(item.time) }}</span>
  </li>
</ul>

JavaScript:

calculateComplexProperty: function (time) {
  // this.distance is an external factor that is not a property of the list item, 
  // and that can be manipulated by the user
  var speed = time * this.distance;

  return speed;
}

因此,每个项目都有一个由全局动态因素“距离”操纵的时间值。这个想法是在“距离”发生变化时自动对项目进行排序,并更新“速度”属性。这可能吗?

【问题讨论】:

    标签: javascript sorting vue.js v-for


    【解决方案1】:

    这个怎么样?

    computed:{
        sortedItems(){
            return this.items.sort((a,b) => 
                 this.calculateComplexProperty(a.time) - this.calculateComplexProperty(b.time))
        }
    }
    

    模板

    <li v-for="item in sortedItems">
    

    【讨论】:

      【解决方案2】:

      模板

      <li v-for="item in sortedItems(items)">
      

      vue js

      computed:{
          sortedItems(items){
              return _.orderBy(items, 'time', 'asc');
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-08
        • 2023-04-01
        • 2021-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-15
        • 1970-01-01
        相关资源
        最近更新 更多