2015-10-08 3 views
1

Если я когда-либо хочу сортировать таблицу с Vue.js, должен ли я всегда получать данные для сортировки, полученные в запросе ajax? для работы v-repeat? или какой способ сделать это с данными, поступающими от контроллера?Сортировка таблицы с Vue

Я хочу знать, если это единственный способ продолжить работу с Vue.js Я пытаюсь использовать традиционную традиционную таблицу, а затем сортировать ее поля заголовков, например. (Название, 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 и с данными, полученными от контроллера

ответ

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; 
    } 
} 

[demo]

+0

hello @pespantelis, ответ, который вы предлагаете, включает директиву v-repeat, но если мне придется использовать этот подход, мне нужно было бы получить мои данные с помощью запроса Ajax? а затем заполнить представление с помощью v-repeat. Но как насчет того, что мои данные уже были вызваны в представление, и все, что я хочу сделать, это использовать Vue.js для сортировки данной таблицы, пожалуйста, проверьте эту тему. https://laracasts.com/discuss/channels/laravel/sorting-a-table-with-vue – FerchoCarcho

+0

Кстати, я буду признавать ваш ответ, если нет способа сортировать таблицу как неасинхронный способ, я бы как использовать, но Im new для Vue.js v-el. Как я знаю, Vue.js является переводчиком между View и Javascript, например JQuery, это облегчает вашу жизнь при правильном написании кода js? – FerchoCarcho

+0

Я дам ваш ответ как действительный, потому что я не смог найти ответ, который мне нужен, так как я вижу, что Vue.js работает так, как вы и в учебниках по laracasts объясните. Благодарю. – FerchoCarcho

Смежные вопросы