Изменить автозаполнение выбранного элемента программно в Vue - PullRequest
0 голосов
/ 12 марта 2020

Я не продвинулся в Vue, предположим, что у нас есть:

<v-autocomplete v-model="defaultUser"
                :hint="`User: ${defaultUser.username}`"
                :items="users"
                :item-text="item =>`${item.firstName} - ${item.lastName}`"
                item-value="userId"
                label="Related user"
                persistent-hint
                return-object
                dense
                single-line outlined 
                :filter="userFilter"></v-autocomplete>

и data:

data: () => ({
    users: [],
    defaultUser: { userId: 0, username: 'select user', firstName: '', lastName: '' },
    .....

по нижеприведенному коду, ничего не произошло в пользовательском интерфейсе, в Другими словами, я хочу изменить выбранный элемент по коду, но ничего не произошло:

axios.get('api/user/relatedusers')
    .then(response => { 
        if (response.status === 200 && response.data.id !== 0) { 
            this.defaultUser.userId = response.data.relatedId;//Here is nothing happened 
        } 

    }).catch(err => { 
    });

, почему это не работает, если все переменные находятся под Vue контролем, я имею в виду привязку и наблюдаемость.

1 Ответ

1 голос
/ 12 марта 2020

Похоже, что вы должны найти пользователя по идентификатору, а затем назначить его на this.defaultUser:

this.defaultUser = this.users.find(x => x.userId === response.data.relatedId)
...