This appears in my browser console:
[Vue warn]: Error when evaluating expression "permissions.edit": TypeError: Cannot read property 'edit' of undefined (found in component: <heading>)
Related code:
{{ permissions | json }}
<a class="button" v-on:click="toggleEditMode" v-if="permissions.edit">{{ editMode ? 'Save' : 'Edit' }}</a>
Results in:
Permissions is obviously not undefined. What's going on? To make matters more confusing, if I pass a literal object to the component (:permissions="{edit: true}"), the warning goes away, but the json output from {{ permissions | json }} looks exactly the same.

editproperty in a way that Vue did not notice it. (the json filter doesn't care for reactivity, so it does not matter there ) When and how are you creating / filling the permissions object? Do you change it somewhere, in aready()hook or something? Did you define thepermissionsobject in the componentsdatawith theeditproperty already in place? These are relevant infos we need.created()method of my ViewModel. It's assigned to the ViewModel withthis.$set, and passed as a prop in my template.permissions.edit, it has not yet been set, as the API call is still going on in the background. As soon as that call has finished,permissionsgets set properly and your template works as expectd.