@angular_js

Страница 308 из 325
Sergey
25.08.2018
07:38:25
Я в интерцепторе ловлю 401 и на первом запускаю рефреш запрос. И пока он бежит собираю поступающие запросы в массив промисов, который пуляю если удалось обновить с новым токеном

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

И юзера от этого может на логин выкинуть

А мы это не хотим

Google
Sergey
25.08.2018
07:45:25
Проблема только в том что у меня это говно глючит ибо слишком много логики

Но это вопрос извлечения рук из жопы скорее

Sergey
25.08.2018
12:54:03
самый верный флоу на мой взгляд
Способ работает, но нужно предусмотреть и как следует проверить обработку ошибок рефреша.

А то у меня получился циклический рефреш, было стыдно)

Remite
25.08.2018
12:55:05
А то у меня получился циклический рефреш, было стыдно)
нормально, че. дрочить сервер пока не вернет токен :))

Igor
25.08.2018
14:21:48
кто подскажет норм tutorial типа этого https://medium.com/@levifuller/building-an-angular-application-with-asp-net-core-in-visual-studio-2017-visualized-f4b163830eaa только с javaScript или просто подобный, может с другой стороны если подойти, будет понятнее

DEN
25.08.2018
15:54:36
Кто может подсказать, есть ли библиотека для реализации авторизации посредством 4-значного пин кода ?

Remite
25.08.2018
16:39:44
Кто может подсказать, есть ли библиотека для реализации авторизации посредством 4-значного пин кода ?
а какую часть такой авторизации должна быть в либе? Сгенерировал код, отправил юзеру на мобилу, подтвердил ввод через апишку, тадам

Remite
25.08.2018
18:47:00
реализуйте сами

DEN
25.08.2018
18:56:10
Мм ок

Uladzislau
26.08.2018
09:57:47
Ребята, подскажите, правильно ли поступаю, когда разделяю config, controller, template, service по разным файлам? Дело в том, что использую $stateProvider и выходит, что в конфиге есть логика загрузки данных в resolve. Хотелось бы вынести это в контроллер, типа NameCtrl.resolve = {}; а потом в конфиге resolve: NameCtrl.resolve. Но контроллер находится в другом файле и доступ из конфига я к нему не имею. Попробовал прокинуть посредствам DI, но вылетает ошибка: "Unknown provider". Помогите, пожалуйста, разобраться, что я делаю не так.

Google
Sergey
26.08.2018
10:22:59
А зачем вы вообще так делаете? У ui-router есть resolve, он в контроллер инжектит

Или у вас дефолтный роутер?

Uladzislau
26.08.2018
10:32:38
Да, инжектит. Но из контроллера не понятно, как получаются заинжекченные данные. К примеру, в контроллер приходит что-то типа 'users'. Что это за юзеры? Откуда они берутся? Из контроллера я не могу узнать эту информацию. Приходится идти в конфиг и там будет resolve: { users: userService => userService.getUsers(); }

Sergey
26.08.2018
10:34:40
А зачем контроллеру знать откуда юзеры? У вас di чтобы как раз не знать

Uladzislau
26.08.2018
10:34:49
Было бы клево видеть такие вызовы внутри контроллера. И тогда, легко можно было бы понимать, что это за юрезы инжектятся

Ну, самому контроллеру пофигу. Он как получал юзеров, так и будет получать их через DI. Тут дело просто удобочитаемости.

Sergey
26.08.2018
10:36:16
Ну инжектите сервис тогда)

Тогда все вызовы на виду будут

Uladzislau
26.08.2018
10:38:58
Насколько я понимаю, суть resolve в том, чтобы не переходить по роуту до тех пор, пока не будут готовы все данные. А, если инжектить напрямую сервис в контроллер, тогда я потеряю эту самую фишку)

И будут на странице мерцания, когда темплейт отрисуется пустым, а затем подгрузит данные и отобразит

Sergey
26.08.2018
10:41:58
Ну вы сами сложности ищете, а потом удивляетесь)

Я пока так и не понял как это должно выглядеть, что должно быть в контроллере? Промис из сервиса? Либо ваши данные сами должны и содержать список и методы для работы с ним

Или инжектить данные и методы работы с ними отдельно

Uladzislau
26.08.2018
10:53:31
$stateProvider.state('state', { resolve: MainCtrl.resolve } ------------ function MainCtrl (users) { this.users = users; } // create the resolved property MainCtrl.resolve = { users: function (UserService) { return UserService.getUsers(); } };

Что-то вроде этого мне бы хотелось реализовать.

Sergey
26.08.2018
11:00:00
Ну я примерно так и делаю, в маршрутизаторе умный компонент, который потребляет сервисы, а он уже пробрасывает биндинги тупым компонентам которые могут только отображать и дергать колбэки

То есть тупой компонент вообще без понятия откуда данные и что с ними происходит, всё через биндинги

{ name: "app.users.add", url: "/add", template: [ "<users-list", "users='$ctrl.users'", "on-user-add='$ctrl.addUser(user)'", "on-user-remove='$ctrl.removeUser(userId)' "on-user-update='$ctrl.updateUser(user)', "></users-list>" ].join(" "), controller: [ "users", "usersService", function ( users: User[], usersService: UsersService): void { this.users = users; this.usersService = usersService; this.addUser = (user:User) = { ...... } ...... }], controllerAs: "$ctrl", resolve: { users: [ "usersService", (usersService: UsersService): Promise<User[]> => { return usersService.getUsers(); }], }, ncyBreadcrumb: { label: "Users" } },

Вот что-то в таком духе

Контроллер инлайновый или нет - по вкусу

Google
Sergey
26.08.2018
11:10:50
Это не то?)

Igor
26.08.2018
12:33:05
Что вы там храните и как она эволюционирует в процессе
У меня тут есть догадка, подскажите правильно ли я думаю. Смотрю видео урок от ITVDN рассказ про наследование контроллеров. и как я понял что если в головном контроллере определить поле ссылочного типа, то оно будет обновляться независимо от того в какой из дочерних деректив его меняли. и получается мне надо объявить такое поле на основной странице и использовать его в двух моих дочерних директивах?

это для того чтоб при добавлении записи о социальной сети, в другой дерективе появлялась иконка

или как то использовать переменную $rootScope

Sergey
26.08.2018
12:39:17
Вам нужен или store или порождать событие

@jashka_jashka показывал как-то свою библиотеку для организации сторов в нг1

Может быть вам это подойдёт

Andrey
26.08.2018
12:42:07
https://github.com/Insidexa/jstore вот оно используется rxjs, правда скорее оно не подойдет ибо порог входа возростает с rxjs

Sergey
26.08.2018
12:54:13
Я просто не понимаю где там возникает затык))

@IgPod вы может в песочнице типа plunkr продемонстрируете проблему?

Наследование контроллеров звучит как очень старые туториалы с толстыми контроллерами

Но может быть у вас там так и надо, не знаю

Igor
26.08.2018
12:57:44
не сейчас не покажу, но я нашел для себя такую штуку $rootScope.$broadcast("e_Event_changeProfileSocials", editSocial.model); - это в одной директиве при редактировании соц сетей $scope.$on("e_Event_changeProfileSocials", function (event, socials) { viewHrProfile.profile.FacebookURL = socials.FacebookURL; viewHrProfile.profile.LinkedinURL = socials.LinkedinURL; viewHrProfile.profile.TwitterURL = socials.TwitterURL; viewHrProfile.profile.GooglePlusURL = socials.GooglePlusURL; viewHrProfile.profile.InstagramURL = socials.InstagramURL; }); - это в другой директиве, где отображаются иконки. проверить сейчас не могу, тим лид на выходные доступ перекрывает

Sergey
26.08.2018
12:58:43
Ну это если директивы вообще никак не связаны

Igor
26.08.2018
12:59:22
у нас тут просто в одном месте так и сделано, так что думаю взлетит)

Sergey
26.08.2018
12:59:41
Окей)

Igor
26.08.2018
12:59:49
завтра скажу результат

Sergey
26.08.2018
13:00:48
Да будет всё работать. Тут вопрос архитектуры. Если у вас так принято, то почему нет.

Igor
26.08.2018
13:05:45
дрйгой вопрос, если у меня на форме стоит ng-if="viewHrProfile.profile.FacebookURL" он подхватит изменения в модели? или надо ng-if*="viewHrProfile.profile.FacebookURL" или ng-if={{viewHrProfile.profile.FacebookURL}}

в примере что у нас в проекте есть изменение через event но там переменная на html лежит как {{viewHrProfile.profile.Status}}

Google
Sergey
26.08.2018
13:13:07
Первый вариант будет работать

Если в области видимости такое есть и оно обновится соответствующим образом

Andrey
26.08.2018
16:36:58
шо за нашествие ботов

Im the
27.08.2018
00:37:05
шо за нашествие ботов
Я тут почти год

Не надо вот ля-ля

Страница 308 из 325