如果我想用Vue.js对表进行排序,我是否应该始终在ajax请求中获取要接收的数据?让v-repeat起作用?或者哪种方法可以使用来自控制器的数据?
我想知道这是否是使用Vue.js时唯一的方法 我试图以传统的方式使用已经获取的表,然后对其标题字段进行排序,例如。 (title,created_at)
@foreach($sliders as $slider)
<tbody>
<tr>
<td>{{$slider->nombre}}</td>
<td>{{$slider->mensaje}}</td>
<td>{!!Html::image($slider->thumb_path)!!}</td>
<td>{{$slider->publicado}}</td>
<td>{{$slider->created_at}}</td>
<td>{!!link_to('admin/slider/'.$slider->id.'/edit', 'editar','class="btn btn-primary"')!!}
{!!link_to('admin/slider/'.$slider->id, 'borrar','class="btn btn-danger"')!!}
</td>
@endforeach
我希望我的桌子像 http://javascriptbook.com/code/c12/sort-table.html 但是使用Vue.Js和从控制器接收的数据
答案 0 :(得分:2)
您可以使用orderBy
Vue过滤器,例如:
<table>
<thead>
<tr>
<th v-repeat="column: columns">
<a href="#" v-on="click: sortBy(column)">{{ column }}</a>
</th>
</tr>
</thead>
<tbody>
<tr v-repeat="users | orderBy sortKey reverse">
<td>{{ name }}</td>
<td>{{ age }}</td>
</tr>
</tbody>
</table>
和
data: {
sortKey: 'name',
reverse: false,
columns: ['name', 'age'],
users: [
{ name: 'John', age: 50 },
{ name: 'Jane', age: 22 }
// ...
]
},
methods: {
sortBy: function(sortKey) {
this.reverse = (this.sortKey == sortKey) ? ! this.reverse : false;
this.sortKey = sortKey;
}
}