-
Notifications
You must be signed in to change notification settings - Fork 104
Update for Vue 2 #17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Update for Vue 2 #17
Conversation
Environment-related ignores should be defined in global gitignore file
Reduces test coverage, but old tests are not doing any good job anyways
Didn't find where it is used
To trigger Travis build
I pulled this request and it seems to be working on Vue 2. Nice work @MunGell |
# Conflicts: # README.md
Thanks for this @MunGell, it works well. To get it working correctly I also had to add <tr v-for="(action, index) in actions" v-bind:key="action.id">
...
</tr> Otherwise Vue isn't aware of the HTML change and it gets out of sync with the model. It is mentioned in the Vue 2 docs, but took me a while to find it, so it may be helpful to add it to the Vue Sortable docs / examples too. |
Works great for me too, will use your version until this PR is merged, thanks @MunGell 🙌 |
Easy mode - add this to
|
It works well , I advice you add the v-bind need for arr sort sync, which is better for using. |
Is there a reason why it should not be merged? |
Thanks @MunGell, only issue I've seen is that the Sortable instance is no longer available on the VM |
@suth yes, there is no vm variable in vue.js v2. |
I haven't really worked with custom directives, but this seems to work: inserted: function (el, binding, vnode) {
var sortable = new Sortable(el, binding.value || {});
if (binding.arg) {
if (!vnode.context.sortable) {
vnode.context.sortable = {}
}
// Throw an error if the given ID is not unique
if (vnode.context.sortable[binding.arg]) {
console.warn('[vue-sortable] cannot set already defined sortable id: \'' + binding.arg + '\'')
} else {
vnode.context.sortable[binding.arg] = sortable
}
}
} |
Hi @suth Thank you for taking time for the research! Thanks |
This doesn't seem to work for me - although the items are sortable, the actual order of the array inside VM doesn't get changed. Any ideas @davejamesmiller @MunGell ? Vue.version |
@garygreen listen for the onUpdate event and modify the array. Not sure if it's the best method but how I'm doing it for now. onUpdateCallback(evt) {
this.items.splice(evt.newIndex, 0, this.items.splice(evt.oldIndex, 1)[0])
} |
@MunGell why not re-release the package under a different name ex. |
Hi @ctf0 How would it be different from https://github.com/SortableJS/Vue.Draggable ? |
it uses a directive which is much easier to incorporate into any project without much work, ex. <ul v-sortable="{ onUpdate: onUpdate }">
<li v-for="item in list" :key="item.id">
<p>{{item.title}}</p>
<button class="delete" @click.prevent="deleteItem(item)"></button>
</li>
</ul> thats all i had to do beside making an ajax to |
@sagalbot any progress for this pull request? |
Hi Jeff,
I've taken the liberty of updating your code to work with Vue v2.
This PR is basically an opinionated version of #13 with fixed tests and dependencies.
I wouldn't expect this to be merged, but may be it will be useful for you when you will be updating this module to v2.