vue загружается перед JQuery на главной странице, и я пытаюсь управлять списком пользователей, реактивно с использованием Vue. Тем не менее, я продолжаю встречаться с следующей ошибкой: < /p>
typeerror: users.hasallusers selected не является функцией < /p>
Эта ошибка возникает, когда Vue пытается вызвать метод, выбранный Hasallusers, на объекте пользователей. Я подтвердил, что метод существует в классе пользователей, и экземпляр VUE инициализируется правильно. < /P>
Код: Выделить всё
class Users {
constructor(users = [], ebus) {
this.filteredUsers = users;
this.isDescSort = true;
this.$ebus = ebus;
}
hasAllUsersSelected() {
if (this.filteredUsers.length === 0) {
return false;
}
return this.filteredUsers.every(user => user.isSelected);
}
toggleSort(state) {
this.isDescSort = state;
this.filteredUsers.sort((a, b) => {
const nameA = a.name.toLowerCase();
const nameB = b.name.toLowerCase();
return this.isDescSort ? nameA.localeCompare(nameB) : nameB.localeCompare(nameA);
});
}
}
new Vue({
el: '#app',
data() {
return {
users: new Users([]),
};
},
methods: {
getUserList () {
let vals = [...document.querySelectorAll('#listEnrolledUsers > option')];
let userList = vals.map(user => new User(user.textContent.trim(), user.value, false));
userList = userList.filter((user, index) => index !== 0);
this.users = new Users(userList, this.$ebus);
}
},
mounted() {
this.getUserList();
console.log('Vue instance mounted');
console.log('users:', this.users);
console.log('users.hasAllUsersSelected:', typeof this.users.hasAllUsersSelected);
},
});
< /code>
шаблон: < /p>
[i][/i]Users
[i][/i]
Sort Descending
[i][/i]
Sort Ascending
[list]
[*]
[i][/i]
{{ user.name }}
[/list]
(Vue - версия 2.6.14)
Подробнее здесь: https://stackoverflow.com/questions/797 ... ith-jquery