Alex
Приветствую. Вопрос по vuejs: Есть один селект. Если пользователь изменит значение этого селекта - ему нужно будет заново проводить много муторных действий, поэтому перед изменением нужно confirm'ом спросить пользователя, действительно ли он хочет это сделать. Думал сделать как-то так: <select v-model="cross_type" @change="changeCrossType($event)"> <option disabled value="">Тип</option> <option value="copper">Медь</option> <option value="optic">Оптика</option> </select> changeCrossType(event) { if (this.hops.length > 0) { current_cross_type = this.cross_type; change = confirm('Поменять среду?'); if (change) { this.hops.length = 0; this.cross_type = event.target.value; } else { this.cross_type = current_cross_type; } } } Но оно не предотвращает изменение селекта, в результате он все равно меняется (ну хоть массив не чистится). Вопрос - как сделать это правильно?
Syntax Highlight Bot
====================================================
Alex
а если @change.prevent=... использовать?
Интересный вариант. Попробую сейчас.
Vladislav
Не, не помогло.
Делай проверку в вотчере
Vladislav
Можно же просто завершать выполнение метода, не изменяя поле
Alex
Кстати, зачем тебе current_cross_type ?
Сохраняю его в попытке откатиться на него обратно, если пользователь ответил "нет".
Alex
Делай проверку в вотчере
Вотчи раньше не писал, но попробую.
Alex
Делай проверку в вотчере
watch срабатывает до изменения (т.е. когда vue видит, что его вот-вот поменяют), или сразу после?
Alex
Я так подумал, он можно даже без него обойтись
Вариант с @change мне кажется довольно логичным, только отчего-то не работает. Может, какой другой v-on нужен?
Alex
Вариант с @change мне кажется довольно логичным, только отчего-то не работает. Может, какой другой v-on нужен?
Не потому ли, что обработчик запускается не при попытке изменения, а сразу после?
Alex
В итоге просто добавил поле last_type, которое копирует значение cross_type только после того, как пользователь подтвердил, что изменять нужно. Если пользователь отказался - в cross_type копируется значение last_type.
Alex
Наверное, выглядит как какая-то ересь, но хз, как это можно правильнее реализовать.
Vladislav
https://codesandbox.io/s/vue-template-l0fvl
Vladislav
Я заметил интересную фичу, что при отмене селект все равно выбирает пункт, хоть он и не меняется в вуе
Китикет
Это называется uncontrolled input
Alex
https://codesandbox.io/s/vue-template-l0fvl
Хм, может дело в том, что у меня v-model использован, а не бинд?
Ivan
Ребята, ктонибуть делал api на ноде для получения данных с tilda?
Ivan
Хм, может дело в том, что у меня v-model использован, а не бинд?
Попробуй что-нибудь отсюда использовать https://stackoverflow.com/questions/29607242/javascript-preventdefault-not-working-on-a-select-tag
Ivan
не могу поймать параметры которые передаются через тильду
Ivan
но на сервер заходит реквест
Anonymous
всем ку
Anonymous
а вот если я инициализирую обьект класса ES6 на моей странице через var object = new MyClass() а потом этот ES6 класс через babel превращаю в ES5, как надо обьект создавать в таком случае? ведь сам класс превратится во всякие function
Anonymous
синтакс инициализации обьекта будет такой же?
Igor
https://learn.javascript.ru/constructor-new
Anonymous
ок, работает) синтаксис такой же)
Anonymous
Anonymous
Здравствуйте. Почему кричит?
Китикет
Здравствуйте. Почему кричит?
OBJLoader - не конструктор
Anonymous
OBJLoader - не конструктор
Ну я это вижу, а как исправить?
Китикет
Я уже это сделал за тебя https://stackoverflow.com/questions/35585353/three-js-errormessage-three-objloader-is-not-a-constructor
Anonymous
Я уже это сделал за тебя https://stackoverflow.com/questions/35585353/three-js-errormessage-three-objloader-is-not-a-constructor
Я гуглил, видел это. Но у меня то все правильно указано, я то проверил?
Igor
Я гуглил, видел это. Но у меня то все правильно указано, я то проверил?
Ты мог бы сам зайти в Three и посмотреть что там конструктор а что нет
Igor
Он же на тс переписан
Igor
Вернее они тайпинги добавили
Anonymous
народ а как вызвать метод обьекта моего класса?
Anonymous
мне говорит типа он не является методом
Oleksii
мне говорит типа он не является методом
кто он? дж не может так говорить. максимум что скажет - он не является функцией. а раз неявляется функцией - то что ты там в него собрался вызывать, смотри в дебаге что там лежит в том, что ты типа пытаешся вызвать
Anonymous
Anonymous
как функцию определить в классе чтобы можно было её вызывать типа object.makeSound() ?
Anonymous
Anonymous
не работает такая шляпа, не знаешь не пиши
Dmitry
убери слово фанкшн
Dmitry
Я знаю, не выебывайся
Igor
читай лерн джаваскрипт
Anonymous
метод не видно снаружи
Anonymous
я пытался делать var jade = new JadeObjGraph() jade.makeSound()
Китикет
Видно, надо просто сделать инстанс
Anonymous
да я вкурсе, я на джава пишу 2 года
Dmitry
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Classes/static
Китикет
var не существует
Anonymous
js говнище какое-то
Anonymous
мне не нужен статический метод
Dmitry
мне не нужен статический метод
так а хули тебе надо тогда нахуй формулируй нормально макака
Anonymous
мне нужен метод для каждого инстанса свой
Igor
Пишет на джаве два года, не знает что такое статические методы
Китикет
const jade = new JadeObjGraph() jade.makeSound()
Китикет
Это рабочий код, хз в чем твоя проблема
Anonymous
пишет makeSound is not a function
Anonymous
поэтому и заебался я с этой хуетой
Oleksii
мне нужен метод для каждого инстанса свой
методы по умолчанию приватные. скорее всего public methodName() { ... }
Anonymous
блять все такие умные, но никто ещё не дал верный способ реализовать такую простую вещь
Igor
блять все такие умные, но никто ещё не дал верный способ реализовать такую простую вещь
Надо всеголишь заставить поработать свой мозг и почитать лерн жаваскрипт
Китикет