
Sergey
18.09.2016
15:40:49
Но код у меня генерируется, поэтому писать это сходу не всегда удобно. Добавлять retry там. Да, наследование тут удобно.

Алексей
18.09.2016
16:14:21


Alexey
18.09.2016
16:29:30
Нет, я не хожу на фронтовые конфы. Но посмотрю запись твоего доклада)

Алексей
18.09.2016
16:30:31
Жаль - похоливарили бы :) (ну если что можно будет на Angular митапе втретиться)

Google

Alexey
18.09.2016
16:31:36
Насчёт ангуляр митапа подумаю, такие ивенты - редкость

Vitaliy
18.09.2016
17:13:09
Ребят, новых буков the complete guide of ng2 не выходило? У меня r35 последняя.

Михаил
18.09.2016
18:04:49
ребят, а формы все делают через формбилдеры? читаю https://scotch.io/tutorials/using-angular-2s-model-driven-forms-with-formgroup-and-formcontrol
Что-то как-то сложно

Alexey
18.09.2016
18:12:47
я не делаю
использую только template forms
тут был холивар на эту тему как-то

Михаил
18.09.2016
18:13:33
И к чему пришли?
и что такое темплейт формс?

Alexey
18.09.2016
18:13:46
как обычно все при своем мнении остались

Михаил
18.09.2016
18:14:35
просто у меня ругается, когда я просто делаю через [ngModel] + нету биндинга,
[(ngModel)]*

Alexey
18.09.2016
18:15:15
template forms это когда вся форма строится в шаблоне на директивах
на что ругается?

Google

Михаил
18.09.2016
18:15:50
ох, я уже закрыл проект. Сек)

Alexey
18.09.2016
18:16:38
name="" атрибут не забыл у всех [(ngModel)] определить?

Михаил
18.09.2016
18:17:38
он обязателен?

Alexey
18.09.2016
18:17:46
да

Михаил
18.09.2016
18:17:53
у меня просто

Alexey
18.09.2016
18:17:57
если внутри <form> у тебя элементы

Михаил
18.09.2016
18:18:04
[(ngModel)]="model.name"

Alexey
18.09.2016
18:18:04
то обязателен name

Михаил
18.09.2016
18:18:08
в первом взлетало вроде

Alexey
18.09.2016
18:18:16
это не первый)

Михаил
18.09.2016
18:18:53
сейчас гляну

Alexey
18.09.2016
18:19:01
там же в консоли сразу ругается ангуляр если name не проставить

Михаил
18.09.2016
18:19:29
может я недошел до этих эроров)
я ngModel в компоненте определяю как объект класса
еще
newCustomer: Customer;
я видел они описывали в доке типо
this.newCustomer = new Customer('','');

Alexey
18.09.2016
18:21:37
если честно то ничего не понял, почитай лучше внимательно в консоли на что руагается

Михаил
18.09.2016
18:21:48
та я стягиваю модули)
сейчас чекну

Google

Alexey
18.09.2016
18:21:56
скинь сюда ошибку если не понятно

Михаил
18.09.2016
18:26:16
ругается на модель
Cannot read property 'name' of undefined
newCustomer: Customer;
больше я нигде не объявляю кастомера

Alexey
18.09.2016
18:41:05
ты newCustomer куда-то в шаблоне прокидываешь в проперти дочерних компонентов?
[(ngModel)]="newCustomer.name" или {{newCustomer.name}} есть где нибудь?
[(ngModel)]="model.name" тут model это newCustomer ?

Михаил
18.09.2016
18:43:32
Да

Alexey
18.09.2016
18:43:44
тогда newCustomer: Customer; поменяй на newCustomer = new Customer();
у тебя newCustomer при первом рендеринге = undefined сейчас
в первом ангуляре шаблоны и их expression молчали и не кидали исключений
в ng2 такое не пройдет

Михаил
18.09.2016
18:45:13
Спасибо
работает

Alexey
18.09.2016
18:45:20
в ng2 шаблоны можно рассматривать как jsx в реакте
это такой же runtime код
на JS

Михаил
18.09.2016
18:45:51
я думал, что
newTest:test - эквивалентно созданию новой переменной в скоупе

Dreamerinnoise
18.09.2016
18:46:16

Alexey
18.09.2016
18:46:31
доку на angular.io )

Google

Alexey
18.09.2016
18:46:55
соответсвтенно newTest == undefined
без явного присваивания значения все объявляется как undefined

Михаил
18.09.2016
18:49:56
Понял, спасибо

Alexey
19.09.2016
07:59:11
тут недавно обсуждали lazy loading строенный в роутер
я сделал демку
import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
export const routes: Routes = [
{ path: '', redirectTo: 'crisis', pathMatch: 'full'},
{ path: 'crisis', loadChildren: 'app/crisis/crisis.module#CrisisModule' },
{ path: 'heroes', loadChildren: 'app/heroes/heroes.module#HeroesModule' }
];
export const routing: ModuleWithProviders = RouterModule.forRoot(routes);

Dreamerinnoise
19.09.2016
08:00:12
доку на angular.io )
честно, пытался найти механизм, но не вкурил как его можно рассматривать как jsx в реакте. Если есть ошибка в темплейте, то он не соберётся, верно?

Alexey
19.09.2016
08:01:26
CrisisModule и HeroesModule импортируют shared модуль ChartModule внутри которого импортируется Highcharts
в итоге вебпак собирает 2 чанка и в оба подключает Highcharts
хотя в доке пишут что вебкап умный и может в отдельный чанк выносить шаред модули
https://webpack.github.io/docs/code-splitting.html#commons-chunk
я имел в виду рантайм
все рантайм исключения из шаблонов будут всплывать
в отличие от ng1 где они были обернуты в try-catch

Dreamerinnoise
19.09.2016
08:05:18
ok, понял. я уж подумал, там прям как в jsx

Alexey
19.09.2016
08:05:55
к сожалению нет( я бы хотел типизацию в шаблоны и compile time проверку
насчет lazy loading кто в теме поделитесь как правильно выносить shared модули

Vadym
19.09.2016
10:00:01
Мужики, привет, как сделать редирект непрописанных в роутере ссылок?

Google

Vadym
19.09.2016
10:04:35
только так { path: '**', redirectTo: '/home } ?

Sergey
19.09.2016
10:13:26
Хотя, что-то у меня подключалось, но я считаю router еще очень сырой, особенно с children очень странно работает

Alexey
19.09.2016
10:45:53
по доке это импортить все шаред модули в AppModule?
или собрать в CoreModule и так же подключить в AppModule
так?
такой вариант мне тоже не нравится потому что все shared модули свалятся в main.bundle.js впридачу к ангуляру и его зависимостям, бандл будет большой все равно
мне бы хотелось CoreModule собрать в отдельный чанк и подгружать его on demand

Vadym
19.09.2016
10:52:46

Алексей
19.09.2016
10:56:50

Vadym
19.09.2016
11:02:48
если ссылка такого вида http://localhost:3000/blabla то все ок, а если http://localhost:3000/blabla/blabla то уже ошибка

Sergey
19.09.2016
11:07:30

Alexey
19.09.2016
11:11:59
Я понимаю как это работает и багов кстати я пока не словил. У меня кейс с highcharts , он тяжелый и используется не везде, примерно в половине роутов. Я не хочу чтобы он был в main бандле, хочу сделать отдельный чанк для него, и дождаться когда пользователь откроет тот роут где он используется
И это loadChildren соглашение не покрывает этот кейс
Попробую сейчас сделать фейковый роут специально для Highcharts
Чтобы под него чанк отдельный выделили

Алексей
19.09.2016
11:14:12

Vadym
19.09.2016
11:15:42
Алексей, спасибо

Sergey
19.09.2016
11:19:53

Alexey
19.09.2016
11:19:58
Да
Эта группа больше не существует