🎋🎋🥷 ngSamurai
боже мой
https://t.me/angular_ru
Nick
понял, щас попробую сделать, харанее спасибо)
Nick
ладно напишу по нормальному, а то самого бесит .....
1 страница, на ней есть карточки(каждая из которых отображает название типа юзеров их количество и ссылку на таблицу которая их содержит)
2 страница, на ней в "шапке вкладки с типами юзеров" а ниже таблица, которая в зависимости от выбранной вкладки рендерит нужных мне юзеров и меняет queryparams в урле
получается когда я на странице с таблицей кликаю по вкладкам, то у меня в компоненте не использую onInit я просто создал метод, который через сервис делает запрос , фильтрует полученные данные и выводит их , этот метод я повесил как событие клик на соответствующую вкладку
а когда я на странице с карточками, при клике на ссылку, меня редиректит куда нужно, параметры в урле правильные, но данных нет вообще. причем логика у меня и там и там по сути должна быть одинаковая , и если я пытаюсь вывести эти данные в консоль, то при клике на ссылку в карточке, они выводятся в консоль, но не рендерятся
Nick
извиняюсь что так коряво написал)
Nick
но надеюсь лучше смог объяснить
Nick
все еще думаешь что надо попробовать в нгАфтерВьюИнит?
Nick
если что продублирую это в чат который ты скинул)
Nick
бля, меня там забанили похоже
Nick
ахах
🎋🎋🥷 ngSamurai
Nick
🎋🎋🥷 ngSamurai
тут?)
У тебя там онПуш стратегии висят?
🎋🎋🥷 ngSamurai
Если да. То можно на вьюИнит повесить маркФорЧек, либо просто попробовать отрендерить сначала запрос руками, вызвав метод твой, который на клике стоит.
Nick
я не совсем понимаю что должен делать метод который на кнопке, потомучто по факту мне же не нужно ничего кроме переадресации на нужную часть второй страницы, поэтому вроде как и метот там никакой не нужен, я же делаю в ссылке routerlink, но данных он там не дает, те нужно после перехода на страницу получить данные , не пойму в каком месте, ну те если на 1 странице я ничего не запрашиваю, а просто перехожу по ссылке, а на второй странице мне надо сделать запрос каким то образом, но если я сразу зашел через урл на 2 страницу , то там то данные отображаются, я чет поплыл с этого, мне кажется что это должно быть просто и я что-то по не внимательности упустил, и не могу понять что
Nick
вот это страница с карточками, где при клике на кнопку меня должно редиректнуть
Nick
Nick
Nick
вот это страница на которую должно редиректнуть,
Nick
Nick
Nick
Nick
тут одна ссылка которая в шапке и таблица куда должны выводиться пользователи согласно активной ссылке в шапке
🎋🎋🥷 ngSamurai
🎋🎋🥷 ngSamurai
Давай завтра на свежую голову посмотрим?)
Nick
кароче я уже походу разобрался в какую сторону тут двигать
🎋🎋🥷 ngSamurai
Nick
думаю что скоро полностью решу проблему
🎋🎋🥷 ngSamurai
Nick
а вот когда сделаю тогда и напишу)
Nick
через query params сделал
🎋🎋🥷 ngSamurai
R
Кто-то встречался с такой ошибкой?
R
net::ERR_EMPTY_RESPONSE
🎋🎋🥷 ngSamurai
R
R
cors?
при длительных операциях, фронт отваливается, когда бэк еще продолжает задачу
🎋🎋🥷 ngSamurai
но в консоли какая ошибка?
R
R
🎋🎋🥷 ngSamurai
https://stackoverflow.com/questions/45876257/express-post-request-gives-err-empty-response
R
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
ку. angular.extend работает так же, как и spread оператор, или он сохраняет методы и инфу о том, что объект является инстансом какого-то класса?
🎋🎋🥷 ngSamurai
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
У меня баг в двух концах
Есть такой екстенд
И вокруг него раньше был тайм-аут
Тайм-аут существовал из-за бага что елемент пропадал со страницы надолго
Но если оставить тайм-аут то при быстром переключении элемента несколько таймаутов накладываются друг на друга и екстенд получается в итоге берет не те референсы и не те данные
Как такое решить можно?
🎋🎋🥷 ngSamurai
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
🎋🎋🥷 ngSamurai
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
🎋🎋🥷 ngSamurai
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
хз у меня эта шляпа через $timeout была, думаю ничего страшного если я сделаю обычный setTimeout.
а можно ж сохранить таймаут в переменную прям в контроллере? замыкание ж останется?
🎋🎋🥷 ngSamurai
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Ступид шит
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Нет... В анге запрет на натив сеттайиаут
как мне вот такое почистить тогда.
так же как с нативом можно в переменную сохранить а потом вызвать cancel() ? как в доке. только в доке передаётся колбек в cancel и я не понимаю как это устроено
🎋🎋🥷 ngSamurai
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
ага да. раздуплился уже. спасибо
🎋🎋🥷 ngSamurai
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Зачем тебе убрать экстендер?
было раньше так как выделено
вокруг я щас дописал
и вот когда было по старому то oldViewerOpts как-то менялись (там бинарное состояние в них) и получалось что viewer екстендился не с теми Optsами. мне нужно одно, а выставляло противоположное
и такое происходило когда оч много таймаутов друг на друга накладывалось, где-то происходит проскок старого стейта и всё
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
вобщем это не помогло. буду уходить от экстенда и вручную поля выставлять бо тут что-то прям оч тупо как-то
🎋🎋🥷 ngSamurai
🎋🎋🥷 ngSamurai
ну или на крайний случай спредами замержить
🎋🎋🥷 ngSamurai
depthy.viewer = [...depthy.viewer, oldViewerOpts]
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
это ж Object.assign
Та у меня тут куча полей и какие-то почему-то отваливаются
Во втором объекте
Суть кароче: есть анимация с определенными настройками, мы её ставим на паузу и настройки сохраняем, потом проводим какие-то операции в паузе, возобновляем анимацию и применяем сохраненные настройки
Ну забей, щас порешаю, найду где баг, это поле выставлю и всё
🎋🎋🥷 ngSamurai
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Aleksei
Всем привет! Подскажите плиз, как я могу заинжектить один сервис в другой без круговой зависимости? Я делал так https://codepen.io/ttttrrrtttrrree/pen/ExRrpVb?editors=0010
Aleksei
angular.module('app.services')
.service('PullRequests', ['$http','config',function($http,config){
this.dataRequests = [];
this.addReq = function(url){
this.dataRequests.push(url);
console.log(this.dataRequests);
};
this.removeReq = function(url){
this.dataRequests = this.dataRequests.filter(function (item) {
item !== url;
});
console.log(this.dataRequests);
};
}])
.factory('myHttpInterceptor', ['PullRequests', function(PullRequests) {
// console.log('gavno')
// $( "#loader" ).show();
return {
// $( "#loader" ).show();
// optional method
'request': function(config) {
// $( "#loader" ).show()
// PullRequests.addReq('url');
console.log('request', config);
// do something on success
return config;
},
// optional method
'requestError': function(rejection) {
// do something on error
// $( "#loader" ).hide( 3000, function() {});
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
},
// optional method
'response': function(response) {
// $( "#loader" ).hide( 3000, function() {});
// do something on success
return response;
},
// optional method
'responseError': function(rejection) {
// $( "#loader" ).hide( 0, function() {});
// do something on error
// if (canRecover(rejection)) {
// return responseOrNewPromise
// }
return $q.reject(rejection);
}
};
}])
.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('myHttpInterceptor');
}])
🎋🎋🥷 ngSamurai
angular.module('app.services')
.service('PullRequests', ['$http','config',function($http,config){
this.dataRequests = [];
this.addReq = function(url){
this.dataRequests.push(url);
console.log(this.dataRequests);
};
this.removeReq = function(url){
this.dataRequests = this.dataRequests.filter(function (item) {
item !== url;
});
console.log(this.dataRequests);
};
}])
.factory('myHttpInterceptor', ['PullRequests', function(PullRequests) {
// console.log('gavno')
// $( "#loader" ).show();
return {
// $( "#loader" ).show();
// optional method
'request': function(config) {
// $( "#loader" ).show()
// PullRequests.addReq('url');
console.log('request', config);
// do something on success
return config;
},
// optional method
'requestError': function(rejection) {
// do something on error
// $( "#loader" ).hide( 3000, function() {});
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
},
// optional method
'response': function(response) {
// $( "#loader" ).hide( 3000, function() {});
// do something on success
return response;
},
// optional method
'responseError': function(rejection) {
// $( "#loader" ).hide( 0, function() {});
// do something on error
// if (canRecover(rejection)) {
// return responseOrNewPromise
// }
return $q.reject(rejection);
}
};
}])
.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('myHttpInterceptor');
}])
Никак! Переделывай чтобы не было замыканий
Aleksei
Я сделал через $injector.get
Aleksei
Я уже удалил. Просто скопипастил шаблон сервиса. Спасибо
🎋🎋🥷 ngSamurai
Aleksei
Подскажите плиз, могу ли я удалить header через interceptor?
🎋🎋🥷 ngSamurai
Aleksei
Да
Через деструктуризацию?