Данияр
Мдаа
Данияр
Нет живых
b11t
задача специфическая, да на пред..предыдущей версии
Rem1te
Мдаа
Привет ребят. Я юзаю вот такую библиотеку что бы сделать 1. 2. 3. На данный момент я сделал 1. 2. Не могу сделать функционал 3. Пробывал сделать так 3.1 3.2 Получаю вот такую ошибку 3.1.1 3.1.2 Вот мой код ссылка на песочницу Посмотрите пожалуйста
Rem1te
А не, Я не знаю как сделать, сделайте и скажите
🎋🎋🥷 ngSamurai
🎋🎋🥷 ngSamurai
Привет! А) при работе с ngrx/store где лучше открывать и закрывать spinner-dialog: 1) в компоненте перед диспатчем акшина? 2) в эффекте на tap(OPEN_SPINNER) перед switchmap(API_CALL) и закрывать уже внутри API_CALL.then(CLOSE_SPINNER).catch(CLOSE_SPINNER)? Б) делаю логин. 1) click on submit button 2) generate payload from form data-> dispatch action (LOAD_REQUEST) with payload 3) на LOAD_REQUEST реагирует Effect который шлет запрос на сервер 4) Effect возвращает LOAD_REQUEST_FAILURE & LOAD_REQUEST_SUCCESS actions, соответственно с токеном и ошибкой. и меняет состояние стора по статусу LOADING/ERROR 5) логин форма показывает спиннер диалог пока идет действие... вопрос... где делать переход на основной раздел? в effect'e или в логин-компоненте и всегда слушать LOADING статус и в нем проверять есть ли токен в сторе или нет? или есть другой/лучший flow для данного кейса?
Rem1te
Привет! А) при работе с ngrx/store где лучше открывать и закрывать spinner-dialog: 1) в компоненте перед диспатчем акшина? 2) в эффекте на tap(OPEN_SPINNER) перед switchmap(API_CALL) и закрывать уже внутри API_CALL.then(CLOSE_SPINNER).catch(CLOSE_SPINNER)? Б) делаю логин. 1) click on submit button 2) generate payload from form data-> dispatch action (LOAD_REQUEST) with payload 3) на LOAD_REQUEST реагирует Effect который шлет запрос на сервер 4) Effect возвращает LOAD_REQUEST_FAILURE & LOAD_REQUEST_SUCCESS actions, соответственно с токеном и ошибкой. и меняет состояние стора по статусу LOADING/ERROR 5) логин форма показывает спиннер диалог пока идет действие... вопрос... где делать переход на основной раздел? в effect'e или в логин-компоненте и всегда слушать LOADING статус и в нем проверять есть ли токен в сторе или нет? или есть другой/лучший flow для данного кейса?
Ну смотри как мы это у себя делаем: Диспатчик екшен REQUEST_ANYTHING его ловит ефект и редьюсер в редьюсере на REQUEST_ANYTHING переключаемя состояние куска сторы в isLoading: true, errors: null, потом когда приезжает REQUEST_SUCCESS мы делаем isLoading: false, соответсвенно на изЛоадин висит селектор который мы юзаем для спинера
Rem1te
Второй кейс это блокирование экрана прелоадерами "локально" В таком случае после нажатия на кнопки внутри компонента мы включаем прелоадер, и когда мы заканчиваем делать там же и выключаем в компоненте ( но в этом случае мы стору не дергаем, какие-то локальные сложные операции)
🎋🎋🥷 ngSamurai
на текущий момент я вынес все в отдельный сервис "UserService" и в нем уже подписываюсь на стор и селекторы.. этот же сервис подключается автоматически при старте приложения как синглтон... а в логин-компоненте уже могу напрямую получать статусы.. таким же образом можно без копипасты во всем приложении работать с UserStore через сервис...
Rem1te
@jashka_jashka, тут халяву опять завезли
Sasha
Добрейшего вечера. Есть компонент(кастомное поле формы) с require: ^ngModel. Нужно поставить туда значение при инициализации. Это должен быть пустой массив. При нерасовом this.model.$viewValue = [] ничего не коммитится. При this.model.$setViewValue([]) форма становится $dirty и даже $setPristine не спасает. Что можно сделать?
🎋🎋🥷 ngSamurai
зачем внутри ?
Sasha
производи инициализацию в парент компоненте
А как это сделать в условиях динамических форм? Грубо говоря, приходит html: <form> <component …bindings ng-model=“formData.firstField”/> <anotherComponent …bindings ng-model=“formData.secondField”/> …. </form> И вся логика инкапсулирована внутри компонентов, которые привязы к модели. На верхнем уровне я ничего не знаю заранее
Sasha
Если бы это было что-то захардкоденное, то без проблем
pa[aad
не по теме чата, вы хоть смотрите куда и что пишите
pa[aad
так лучше, а то муляет
Денис
Привет! Такая проблема: Есть 2 элемента с ng-if Один находится во втором ниже по DOM-дереву У обоих ng-if переменная с true-false, скажем showOne и showTwo Так вот: предположим, что у обе переменные изначально true. После мы меняем showOne на false, элементы исчезают, а потом showTwo на false После этих действий возвращаем showOne true, но почему то элемент с ng-if="showTwo", который находится в первом видим полсекунды, а потом исчезает. Как это можно вылечить?
Rem1te
@javascript_jobs вот куда-то туда
Anonymous
Благодарю:)
🎋🎋🥷 ngSamurai
Привет! Как лучше обозвать столбец в базе ответственный за сортировку строк в списке?
Rem1te
sortBy
Rem1te
;0
🎋🎋🥷 ngSamurai
select * from foo order by sortBy?) звучит скушно)
🎋🎋🥷 ngSamurai
клиент использует немецкие слова/ например sortierung laufendeNummer но надо на англ...
Rem1te
назови sortering:)
Rem1te
activeSort
🎋🎋🥷 ngSamurai
пример из битрикса
🎋🎋🥷 ngSamurai
🎋🎋🥷 ngSamurai
просто "sort" ?)
Rem1te
not bad :)
Rem1te
@jashka_jashka
Whispering echo
Привет, вопрос такой, какие хорошие инструменты аналитики можно прикрутить на фронтэнд, чтобы снимать все поведение пользователя в браузере и на мобильной версии, включая heatmaps? Google analitycs?
Whispering echo
Бэк и фронт на ангуларе
Whispering echo
Привет я UX designer.
Whispering echo
/stat@combot
Combot
combot.org/c/-1001024737789
Whispering echo
https://www.hotjar.com/
👍🤝 благодарю!
Whispering echo
🎋🎋🥷 ngSamurai
@maximusxx Подходит как для веб версии так и для мобильной, если имеется ввиду гибридное приложение на кордове
Whispering echo
именно то что нужно, отправлю devам. Всем спасибо, по результатом отпишусь.
🎋🎋🥷 ngSamurai
🎋🎋🥷 ngSamurai
там же есть и список других поддерживаемых сервисов
Whispering echo
👍
D_d
Ребят что лучше использовать orderBy фильтр в темплейте или сделать sort на исходный массив в коде?
Vladyslav
Ребят что лучше использовать orderBy фильтр в темплейте или сделать sort на исходный массив в коде?
Если простая сортировка - можешь юзать orderBy, если усложнена, то лучше в коде
D_d
Типа у меня даты
D_d
И я сортирую по датам
D_d
В коде это через new Date(a) - new Date(b)
D_d
Есть разница вообще?
Vladyslav
Если orderBy решает твою проблему, то юзай его
Sasha
А данные с базы?
🎋🎋🥷 ngSamurai
через пайпы будет логичнее
Sasha
Просто если это не какая-то dummy data, а реальные данные, то лучше делать сортировку на бэке
Andrii
Всем привет. Есть вопрос по поводу ре-рендерингу елементов в директиве ng-repeat. Вообщем есть масив обьекто который я получаю с бд. this.$onInit = function () { $scope.unavaibleGoods = []; }; Рендертся они следующим образом <deleted-good-block-item data-ng-repeat="good in unavaibleGoods track by good.id" checking-goods-mode="checkingGoodsMode""></deleted-good-block-item> Далее после выбоки елементов я удаляю их из бд и масива по которым итерируются елементи. $scope.recoverMultipleGoods = function() { goodsService .restoreMultipleGoods($scope.checkedArray, $shop.$current().id) .then(ids=>{ console.log('$scope.unavaibleGoods',$scope.unavaibleGoods); //before deleting $scope.unavaibleGoods = removeFromArray($scope.unavaibleGoods, ids); console.log('$scope.unavaibleGoods',$scope.unavaibleGoods); // after deleting $scope.closeModal() }) }; Дело в том что из масива елементи удаляются, но не ре-рендерется по-новому
Andrii
помогите пожалуйста:)
Rem1te
scope.$apply() после удаления
Andrii
scope.$apply() после удаления
выбивает ошибку webpack-internal:///535:14800 Error: [$rootScope:inprog] $digest already in progress
Andrii
$scope.$applyAsync()
не роботает(
Eugenio
не роботает(
как ты вызываешь $scope.$apply()?
Rem1te
выбивает ошибку webpack-internal:///535:14800 Error: [$rootScope:inprog] $digest already in progress
Хммм странно, должен был отпасть на асинхронной операции, ладно давай разбираться, в консоли после удаления нету айтема?
Rem1te
Что происходит в методе ремув фром ерей?
Rem1te
-_-
Rem1te
код
Rem1te
можно
Rem1te
пожалуйста?
Rem1te
Я из имени понял что там удаляется что-то из ерея
Rem1te
Выведи в темплейте <button ng-click=test()>{{unavaibleGoods.length}}</button> в консоли test = () => { console.log(scope.unavaibleGoods; }
Andrii
function removeFromArray(original, remove) { return original.filter(value => !remove.includes(value.id)); }
Rem1te
до удаления и после удаление обновилось ли значение в консоли, и отображается ли правильный ленз