
Nikolay
18.04.2018
05:06:57
Суть в том чтобы не писать 2 раза me.loader.finish() ?

Vladislav
18.04.2018
05:07:08
В целом да )

Nikolay
18.04.2018
05:07:38
вариант на втором скрине выполнить finish только в случае с resolve

Vladislav
18.04.2018
05:07:38
ну и суть в том что у ресурса в методе гет нету стандартного get приходится прикрутить промис, может есть запись поумнее

Google

Andrey
18.04.2018
05:07:52
В целом да )
написать interceptor для лоадера
только он будет глобальный
еще как вариант сделать свой сервис для http
и туда передавать параметры, а нужно ли показывать лоадер
это учитываешь в intercetor`e

Nikolay
18.04.2018
05:08:45
или как то так Resource().get().$promise.then().catch().finally();
и в finally запихать вызов

Vladislav
18.04.2018
05:09:04
Да правильнее согласен про свой сервис
в рамках текущей проблемы интересно как будет более грамотнее
Resource().get().$promise.then() разве не сработает после выполнения ?
зачем catch finally ?
Или я путаю что то :(

Andrey
18.04.2018
05:10:30

Nikolay
18.04.2018
05:10:33
так тут второй функций catch идет, где display_http_err
http://joxi.ru/p27aJW7s0Mx7Dr вот сократить надо запись
а колбеки это плохо)

Vladislav
18.04.2018
05:11:46
т.е если в запросе будет ошибка и я использую $promise.then то я туда не попаду ? )

Google

Nikolay
18.04.2018
05:11:55
ага

Vladislav
18.04.2018
05:11:55
ну на самом деле быстрее будет уже просто проверить)))

Nikolay
18.04.2018
05:12:37
при ошибках запроса идет в catch

Vladislav
18.04.2018
05:23:52
Спасибо всем

Евгений
18.04.2018
07:11:25
Привет, ребят хотел спросить, как можно обработать с помощью ангуляра фокус скролла?
Сейчас объясню: есть фильтр, который находится слева, как навигационная панель. Там несколько инпутов. И есть скролл. Но так же скролл есть и на всей странице, само собой.
При скролле в этом фильтре, получается что в 50% фокус пробрасывается на основную страницу, и поскольку контейнер фильтра должен быть fixed, он отрывается от шапки и катится вниз вместе со скроллом основной страницы.
и как бы абсолютом решается, но опять же мне говорят фиксед оставлять
можно ли через ангуляр как то повлиять на фокус
потому как через css я немного связан
top: 0\left: 0 на фиксд не подействует никак

Dmytro
18.04.2018
07:56:56
Ребят обьясните как можно создать такую простую директиву, чтобы она применялась к атрибуту инпута и элемент к которому применяется данная директива делала примерно такой код
document.getElementById("test").onclick = function() {
this.select();
};

Константин
18.04.2018
08:28:04

Dmytro
18.04.2018
08:31:05
Спасибо я нашел решение)

Stas
18.04.2018
09:56:52
ребят, подскажите как вы выводите ошибки пользователю, отправляете ли вы те что приходят из бэка или свои выдаёте?

Max
18.04.2018
09:57:44
status code

Константин
18.04.2018
09:58:23

Andrey
18.04.2018
09:58:40

Stas
18.04.2018
09:59:01
status code
а кроме статус кода? пользователю же эти цифры ничего не скажут

Google

Max
18.04.2018
10:00:16
на основание статус кода делать свой месседж

Константин
18.04.2018
10:00:24

Andrey
18.04.2018
10:00:28
все что не для юзера - sentry

Stas
18.04.2018
10:02:00

Andrey
18.04.2018
10:02:14

Stas
18.04.2018
10:02:25

Andrey
18.04.2018
10:02:44
еще 403

Stas
18.04.2018
10:02:56

Andrey
18.04.2018
10:03:14
в зависимости от кода + внутренний код от сервера и ошибки

Stas
18.04.2018
10:04:02
да нифига, это если проект маленький
есть 200, 204, 201, 300, 401, 404, 500
ну 200, 201, 204 не касается же ошибки, это просто код ответа

Remite
18.04.2018
10:04:03
Обсуждаем с беком кто будет генерировать ошибки, обычно АПИ возвращает человекочитаемые ошибки
если ошибок нет - то есть заготовленный набор ошибок на коды ответа
Все индивидуально
Например валидацию бек возвращает просто массив невалидных полей и на фронте уже их подсвечиваем и выводим сообщение что следующие поля не валидно заполненные

Andrey
18.04.2018
10:04:32
как выше говорят это индивидуально под проект
но лучше так не запариваться если у вас открытое API
там нужно смотреть на стандарты

Stas
18.04.2018
10:07:15
всем спасибо, примерно логику уловил
Ребятки, подскажите как можно после выбора файле без кнопки сабмит отправлять форму? Форма должа запустить функцию, я сейчас делаю через нг-сабмит.
всё, нашёл решение

Sergey
18.04.2018
11:27:31
А какое кстати?) Вообще по идее самому руками собирать FormData, если бэк ждёт в таком формате

Sasha
18.04.2018
11:30:10
Блин, не так сохранилось

Google

Sasha
18.04.2018
11:30:21
Минуту

Stas
18.04.2018
11:30:54
пока еще не понял что это, но оно работает
а, для бэка у меня в сервисе собирается

Sergey
18.04.2018
11:32:33

Stas
18.04.2018
11:32:54
мне нужно было именно на странице понять как сделать автоотправку, что б не тыкать кнопку сабмит
да не, собирается там всё через FormData

Sergey
18.04.2018
11:33:51
Это как, форму отправлять не по клику просто, по другому триггеру?

Stas
18.04.2018
11:34:26
я ж сказал еще не разобрался, просто в гугле нашёл решение, теперь эта форма запускается когда я выбираю файл
типа автосабмит формы

Sergey
18.04.2018
11:34:41
Ну ты сейчас селектишь дом-объект формы и вызываешь у неё обработчик submit

Stas
18.04.2018
11:35:01
отлично, то что нужно)
вот сборка формы
let fd = new FormData();
fd.append('х', х);
fd.append('у', у);
fd.append('fileName', file);
return $http.post(`/йцу`, fd, {
transformRequest: angular.identity,
headers: { 'Content-Type': undefined }
});

Sasha
18.04.2018
11:37:37
Вот, просимулировал. На говнокод не смотрите, я взял чужой планкер и допилил. Почему с первого клика, в значение из коллбэка промиса не меняет значение в темплейте?
https://plnkr.co/edit/50PNiyuLCUXk9MuId5Ri?p=preview

Stas
18.04.2018
11:37:40
я может перемудрил, мне форма как таковая не нужна, мне нужно что бы инпут просто запускал функцию после выбора файла

Sasha
18.04.2018
11:44:01

Sergey
18.04.2018
11:50:23
Почему так происходит я не знаю, но руками трогать scope.apply нужно осторожно.

Sasha
18.04.2018
11:51:48
Вот нашел

Google

Sergey
18.04.2018
11:53:03
Кстати там же дальше через $q.when, вроде чище выглядит, пробовали?
Проверил с $q, вроде работает с первого раза

Stas
18.04.2018
13:08:05
Ребят, как вы отслеживаете клик за пределами какого-то блока? Нашёл библиотеку ng-click-outside, она без проблем всё закрывает, только когда я еще раз нажимаю на кнопку, где по логике должно быть тоже закрытие окна, из за клик аутсайд и повторного клика кнопки ничего не происходит.
точнее эту библиотеку angular-click-outside
еще есть идея проверять клик на заднем фоне, если окно открыто и по каким-то условиям не нажимается кнопка, то закрывать его, но так описывать каждое дроп меню накладно
нашёл более удобную библиотеку, если кому нужно
https://github.com/IamAdamJowett/angular-click-outside
там можно вешать айди на кнопку и её будет игнорировать

Константин
18.04.2018
14:33:44
ты используешь ангуляр - там тысячи фоновых событий, твой листенер ни на что не повлияет, даже если будет 50 менюшек на странице

Bohdan
18.04.2018
14:35:15

Константин
18.04.2018
14:36:15

Stas
18.04.2018
14:36:18

Bohdan
18.04.2018
14:36:44

Stas
18.04.2018
14:37:46
а зачем?
там много данных нужно было в модалку передавать, а так у меня есть доступ к ним, в общем мне свою было проще сделать)

Bohdan
18.04.2018
14:38:28
ngDialog нормас справляется с твоей задачей
а ты свои велосипеды делаешь

Stas
18.04.2018
14:39:52