Я пытаюсь создать директиву автовивификации для моего приложения Vue.
То есть, если у моего data
есть объект user
, например, {user:{}}
и я создаю следующий ввод:
<input type="text" v-model="user.info.name.first" v-autovivify>
Моя директива автоматически создаст желаемый путь внутри объекта пользователя, например, user.info.name.first
(аналогично тому, как это работает в Angular 1.0)
Моя проблема в том, что до вызова моей директивы v-autovivify
, v-model
уже вычисляет и выдает ошибку:
[Vue warn]: Error in render: "TypeError: Cannot read property 'name' of undefined"
Но я точно знаю, что это можно сделать, потому что вот трюк, который я использую для автоживления объектов прямо сейчас:
Методы vivify
просто создают вложенный объект и возвращают true
methods: {
vivifyUser() {
//this should of course check if the path exist but removed for brevity.
this.user = {name: {first: {salut: ''}}};
return true;
}
// other methods, etc...
Что это означает, что v-if
вызывается до оценки v-model
, и поэтому я могу создать путь, и не выдается никакой ошибки.
Итак, мой вопрос: как я могу установить приоритет моей директивы выше, чем v-model
(точно так же, как v-if имеет приоритет)?