plugin-change-flags icon indicating copy to clipboard operation
plugin-change-flags copied to clipboard

Reset flags on a single model instance when persisting

Open johnrix opened this issue 5 years ago • 2 comments

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 avatar Nov 20 '19 14:11 johnrix

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.

johnrix avatar Nov 20 '19 16:11 johnrix

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

kiaking avatar Nov 25 '19 11:11 kiaking