Таир
27.01.2017
08:48:15
но имхо, TTI лучше решать через AoT + Universal + Lazy loading NgModules
но сам не пробовал, так что утверждать не буду
Maksim
27.01.2017
08:49:02
плюс вебврокеры и requestIdleCallback )
Каїн
27.01.2017
09:20:06
Посмотрел доклад, снова захотел переписаться
Google
Талгат
27.01.2017
09:27:27
Каїн
27.01.2017
09:31:10
https://www.youtube.com/watch?v=Ci1fBmsPCso&list=PLH-XmS0lSi_yLq2XS2Y1DScY6NPbQj4Dt&index=73
Alexey
27.01.2017
09:32:55
согласен
а я не согласен, увеличение размера бандла это не то чего нужно бояться (не в 3 раза же он вырастет). Во-первых есть gzip, во-вторых бандл качается 1 раз а потом только получает 304 not modified, в-третьих, повторюсь, lazyLoading. На данный момент у меня среднего размера приложение упакованое cli с AOT и пожатое (всего лишь 5 уровнем сжатия) gzip'ом выглядит так:
http://image.prntscr.com/image/f5cd920b59814f48b173f6c6d40a23ad.png
это без lazy loading, пришлось отключить временно из-за moment.js, он его ломает
Таир
27.01.2017
11:28:56
Universal в любом случае улучшит TTI
А что за проблема с моментом? Мы его юзаем, и тоже планируем ленивую подгрузку
Alexey
27.01.2017
11:36:32
вот https://github.com/angular/angular-cli/issues/2496
похоже недавно починили раз closed уже, надо проверить кстати beta26
мне всегда Vkontakte казался быстрым, и там как раз SSR, сейчас позамерял TTI мой самый тяжелый раздел быстрее грузится чем vk.com/feed почти на секунду, vk конечно тяжелее, но не в разы
Google
Alexey
27.01.2017
11:45:12
+ мы начинаем зависеть от нагрузки
простой хабраэффект понизит TTI среднего Universal приложения
Vladimir
27.01.2017
11:59:11
хм. А как дождаться, когда отрендерится элемент, который был скрыт ngIf'ом
Alexey
27.01.2017
12:00:11
для чего?
Vladimir
27.01.2017
12:01:01
ну,нужно открыть объект, а после того, как он отрендерился - выставить scrollTop
но в момент, когда я хочу получить nativeElement - он еще не отрендерился:)
Олег
27.01.2017
12:06:23
AfterViewInit
Alexey
27.01.2017
12:07:03
можно директиву сделать свою типа (onInit)="onRender()"
Саша
27.01.2017
12:07:21
всем привет может у кого была потребность в таком. У меня есть несколько роутеров вложенных один в другой например 3 и я хочу получить в компоненте второго роутера паф до этого компонента как это можно сделать я нашел только как паф целиком получить
Alexey
27.01.2017
12:07:26
ngIf каждый раз по идее должен инстанцировать директиву
Vladimir
27.01.2017
12:07:41
Alexey
27.01.2017
12:07:46
и внутри ее AfterViewInit() вызывать this.onInit.next()
который ты будешь сверху ловить
Vladimir
27.01.2017
12:08:30
хм, да, можнно так
Alexey
27.01.2017
12:09:29
с этим scrollTo всегда что-нибудь такое костыльное приходится писать
т.к все на dom жестко завязано и никак не обстрагироваться
Олег
27.01.2017
12:13:30
кстате у кого нить бывает что аппа зависает когда в темплейте переменная undefined?
Саша
27.01.2017
12:14:42
прошу услышать меня)) мне некуда больше обратиться
Олег
27.01.2017
12:16:11
Саша
27.01.2017
12:17:05
я чуть выше вопрос написал
Google
Олег
27.01.2017
12:17:28
а ну ладно, я то думал ты мне посочувстовать решил
в ActivatedRoute нету?
Саша
27.01.2017
12:19:31
неа, меня тут не одного игнорят)
ну или я найти не смог)
Alexey
27.01.2017
12:21:43
ну вытащи из url на крайняк
Александр
27.01.2017
12:24:23
Добрый день, не подскажите есть ли scrollspy для ng2, попатылся использовать: https://www.npmjs.com/package/ng2-scrollspy но без примеров ни чего не получилось кроме как просто отловить событие скрола..
Саша
27.01.2017
12:25:30
я прост хочу сделать так что бы я это модуль мог вставлять вдругие и н а любой уровень вложеность и что бы метод навигейт работал без переписывания пути а брал его от того места где он находится
Alexey
27.01.2017
12:26:50
так navigate и так умеет относительные пути понимать
для этого не нужно парент путь знать
Саша
27.01.2017
12:29:15
это если path или ./path или ../path ты об этом? просто у меня еще вложеность есть
Vladimir
27.01.2017
12:40:05
Alexey
27.01.2017
12:40:22
?
Vladimir
27.01.2017
12:40:37
блядство
я #list не указал
хотя не
он все-равно бросате событие раньше, чем ViewChild получает nativeElement
Gleb
27.01.2017
12:47:16
Привет , где то видел что парамтеры можно передавать после хеша, у меня редирект просто есть в одном месте , и там нужно избежать "?"
только не могу найти где
Подскажите пожалуйтса
Alexey
27.01.2017
12:55:18
Google
Vladimir
27.01.2017
12:55:30
даже если просто написть <span *ngIf>...<ul #optionsList> {{loaded()}}
то на loaded() viewChild будет undefined
Alexey
27.01.2017
13:00:18
да не может такого быть, я точно помню делал директиву '[focus]' которая в AfterViewInit() обращалась в nativeElement и ставила фокус
Vladimir
27.01.2017
13:01:29
мб потому что внутри у ul еще li с ngFor?
но они не должны противоречить
Саша
27.01.2017
13:08:48
Gleb
27.01.2017
13:09:06
Отлично подойдет
Саша
27.01.2017
13:09:18
ща
Gleb
27.01.2017
13:12:00
Круто, жду
Саша
27.01.2017
13:13:02
this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]);
Gleb
27.01.2017
13:13:35
А взять как?
Саша
27.01.2017
13:13:51
будут не как квери localhost:3000/heroes;id=15;foo=foo
ща
Gleb
27.01.2017
13:14:05
вово то что надо
Саша
27.01.2017
13:14:28
они у тебя в роутере будут
подключи роутер
Gleb
27.01.2017
13:14:46
Саша Спасибо!
Саша
27.01.2017
13:14:48
в нужном месте
Gleb
27.01.2017
13:14:53
то есть подписаться на queryParams?
Google
Олег
27.01.2017
13:15:13
епт ты ж про хеш спрашивал то)
Саша
27.01.2017
13:15:30
не это не квери
export class HeroListComponent implements OnInit {
heroes: Observable<Hero[]>;
private selectedId: number;
constructor(
private service: HeroService,
private route: ActivatedRoute,
private router: Router
) {}
ngOnInit() {
this.heroes = this.route.params
.switchMap((params: Params) => {
this.selectedId = +params['id'];
return this.service.getHeroes();
});
}
}
можно так взять
https://angular.io/docs/ts/latest/guide/router.html
это тут
Gleb
27.01.2017
13:16:14
да но не прицнипиально хеш =)
Да все гуд, спасибо!
Саша
27.01.2017
13:16:55
import 'rxjs/add/operator/switchMap';
import { Observable } from 'rxjs/Observable';
Gleb
27.01.2017
13:17:13
ага
Саша
27.01.2017
13:17:15
что бы пример работал не забудь
Vladimir
27.01.2017
13:27:13
loaded(){
let optionsElement = (<HTMLElement>this.optionsListElement.nativeElement).querySelector('ul');
optionsElement.scrollTop = this.items.findIndex(x=>x.id == this.innerValue)*28;
}
поставил ViewChild на пэрэнта, который есть всегда в доме
Dmitriy
27.01.2017
13:39:54
Ребят, не могу прикрутить лесс внитри компонента
Vladimir
27.01.2017
13:40:26
AOT?
Dmitriy
27.01.2017
13:40:40
неа, я его еще не отсвоил=)
AngularClass/angular2-webpack-starter конфиг
До АОТ еще не допёр, пытаюсь просто подключить less:
styles: [require('./style.less')]
ERROR in ./~/less-loader!./~/css-loader?importLoaders=1!./~/postcss-loader!./src/app/components/sidebar/style.less
Aleksei
27.01.2017
13:47:21
Коллеги, подскажите что использовать, для решения следующей задачи, завязанной на работу с картами, не сталкивался с ранее с картами, озадачен...
Есть объекты по городу
Нужно их отмечать на карте, прикреплять фоточки и переодически вести мониторинг состояния (люди будут ездить и апдейтить). Будет веб-сервис и мобильное приложение под андроид и возможно iOs. Вебсервис на angular2, и вот встал вопрос какие карты использовать, и какие проверенные либы для работы с картами есть. Конкретных требований от заказчика нету, российские реалии.
Эта группа больше не существует