Sto cercando di implementare Vue.js + i DataTable di jQuery ma si verificano cose strane.Implementazione corretta di Vue.js + DataTable
Scegli questa violino su firefox (non funziona su Chrome): http://jsfiddle.net/chrislandeza/xgv8c01y/
quando cambio lo stato di DataTable (ad esempio, ordinare, ricercare, ecc):
- nuovi dati aggiunti sulla lista scompare
- il DOM non legge le direttive o le proprietà vue
Sono abbastanza sicuro che chiunque abbia provato a mescolare vue.js + datatables abbia riscontrato questo problema. cosa hai fatto per risolvere questo?
oppure esiste un puro script/plug-in Vue.js che ha la stessa funzionalità (o chiusa) come DataTable di jQuery? (impaginazione, ricerca, ordinamento, numero di voci da mostrare, ecc.).
Ecco il codice del violino sopra:
HTML:
<div class='container-fluid' id="app">
<div class='row'>
<div class='col-md-9'>
<table class="table table-bordered" id="app-datatable">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th></th>
</tr>
</thead>
<tbody>
<tr v-repeat="user: users">
<td>{{ user.name }}</td>
<td>{{ user.age }}</td>
<td>
<button type="button" v-on="click: foo(user)">Action</button>
</td>
</tr>
</tbody>
</table>
</div>
<div class='col-md-3'>
<div class="form-group">
<label>Name</label>
<input type="text"
class="form-control"
v-model="newUser.name"
>
</div>
<div class="form-group">
<label>Age</label>
<input type="name"
class="form-control"
v-model="newUser.age"
>
</div>
<button type="submit" class="btn btn-primary" v-on="click: addUser()">Add</button>
</div>
</div>
</div>
JavaScript:
$(document).ready(function() {
var dT = $('#app-datatable').DataTable();
});
var vm = new Vue({
el: '#app',
data: {
newUser: {},
users: [
{name: 'Chris', age: 1},
{name: 'John', age: 2}
]
},
methods:{
addUser: function(){
this.users.push(this.newUser);
this.newUser = {};
},
foo: function(user){
console.log(user.name);
}
}
});
tutti i suggerimenti sono molto apprezzate.
il violino non funziona perché ci si riferisce a githubusercontent direttamente - si dovrebbe utilizzare rawgithub.com -> ** http: //jsfiddle.net/cLd46juf/** vedere [** Reference GitHub file in jsFiddle **] (http://stackoverflow.com/q/9841026/1407478) – davidkonrad
Il problema è analogo a quando si utilizza dataTables lo stile jQuery in angolare. Entrambi stanno cercando di manipolare il DOM, vue sta vincendo la battaglia. Triste a dirsi, non penso che esista una soluzione semplice e immediata. – davidkonrad