vuex-orm / plugin-change-flags

Vuex ORM plugin for adding IsDirty / IsNew flags to model entities.
MIT License
24 stars 10 forks source link

Reset flags on a single model instance when persisting #4

Open johnrix opened 4 years ago

johnrix commented 4 years ago

I want to reset both flags on a single model instance when persisting it to a back-end database. (Presently, I'm using the Vuex ORM GraphQL plugin for the latter purpose, but that is somewhat orthogonal.)

I've tried the following (I haven't tried working with updates to $isNew yet):

        myModelInstance.$update({ '$isDirty': false, preventDirtyFlag: true }).then(result => {
            console.log('update result: ', result)
            myModelInstance.$push()
        })

However, the output from the log statement indicates my update had no effect. What am I doing wrong here?

It seems to me there should be a more explicit means of resetting flags for just a single instance, rather than just for all instances as is presently the case.

johnrix commented 4 years ago

I see now it is just that instance.$update() currently doesn't work. Switching to the following allowed the update to work:

MyModel.update({ data: { id: myModelInstance.id, '$isDirty': false }, preventDirtyFlag: true }).then(result => {

That said, I still feel it would be useful to have a reset method for individual instances to make this simpler. Perhaps I'm missing something though.

kiaking commented 4 years ago

Ah, good point! Thanks for the feedback. Yeah I think it should work with $update as well.