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

Google

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

Remite
25.08.2018
12:47:06

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

DEN
25.08.2018
18:38:16

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
Не надо вот ля-ля