
Vadym
20.11.2016
08:24:38
Всем привет! Кто что использует для рендеринга страниц на сервере?

Семен
20.11.2016
08:50:14
react

Vadim
20.11.2016
09:04:42

Google

Tony
20.11.2016
09:12:16

Vadim
20.11.2016
09:12:46

Tony
20.11.2016
09:14:07

Алексей
20.11.2016
09:18:21

Vadym
20.11.2016
10:44:25
@lendsman , признавайся, что используешь для рендеринга страниц?))

Lends
20.11.2016
10:44:49
PHP ?

Vadym
20.11.2016
10:45:14
?
@lendsman а фронт на angular 2?

Alexander
20.11.2016
11:00:00
Привет всем, я пытаюсь въехать в ангуляр2, и первый же вопрос возник с файликом system-config.ts, которого нет. Он задеприкейтился в последних версиях или я что-то делаю нетак?

Виталий
20.11.2016
11:05:49
Не помню такого файла в официальном туторе

Shoom
20.11.2016
11:07:09
на сколько я знаю это конфиг systemJS

Yuri
20.11.2016
11:07:28
вот я немного не понимаю: есть у меня компонент приложения myapp, использующий другие компоненты
@Component({
selector: ‘myapp’,
template: ’<toh-heroes></toh-heroes>’
})
export class AppComponent {}
почему для того, чтобы начать использовать компонент toh-heroes, мне надо и импортировать его модуль:
import HeroesComponent from ‘./heroes/heroes.component’;… и зарегистрировать его в списке директив?
directives: [HeroesComponent]

Shoom
20.11.2016
11:08:15
В списке директив его модуля

Google

Shoom
20.11.2016
11:08:21
вроде все логично

Yuri
20.11.2016
11:09:24
в смысле, если у нас есть соглашение один компонент на модуль, импортирование модуля должно быть достаточно?

Lends
20.11.2016
11:09:35
@vadost а чем ещё Angular Universal рендерить, как не JSом?)

Valery
20.11.2016
11:11:23

Виталий
20.11.2016
11:11:36
Почему directives а не declarations? Это другая версия?
webpack удобнее

Vadym
20.11.2016
11:14:43
@lendsman документация по universal очень сырая, доп материалов мало! А приложение на Angular 2 надо подружить c seo!

Lends
20.11.2016
11:16:44
ну, можно повтыкать в https://github.com/angular/universal-starter и исходники)

Vadym
20.11.2016
11:16:54
Открываю universal-starter в вебшторме, все подсвечивается красным? Как что-то можно писать, не понимаю))

Dmitry
20.11.2016
11:17:47
Привет, а кто-нибудь юзает ngrx/store?
Я правильно понимаю, что это обертка для Redux?

Lends
20.11.2016
11:17:52
VScode тебе в помощь... Intellij кстати норм, подсвечивает только импорты экспресса

Dmitry
20.11.2016
12:29:55
Что никто и правда не использует redux в приложении? Я просто никак не могу понять, что делать с side effects :)

Alex
20.11.2016
12:35:53
по крайней мере в каноническом реадксе так

Dmitry
20.11.2016
12:41:00
Ага, то есть условно, я делаю апи колл, а потом уже вызывают dispatch с уже нужными данными?
Или это нужно выносить в отдельные файлы

Alexey
20.11.2016
12:42:13

Dmitry
20.11.2016
12:43:21
ну да, и получается в самом простом виде, мне нужно вызывать dispatch просто в колбэке апи кола
https://github.com/ngrx/effects/blob/master/docs/intro.md

Google

Dmitry
20.11.2016
12:43:37
просто есть еще

Alex
20.11.2016
12:44:11

Alexey
20.11.2016
12:44:24
Это типа прокси который по одному событию, например fetch_heroes сходит в апи, получит данные, обработает их и вызовет другое событие fetch_heroes_success и передаст туда данные

Dmitry
20.11.2016
12:44:39
ngrx/effects, я вот это не очень понял, это прослойка, чтобы я мог просто вызывать dispatch, они ловились ngrx/effects делали запрос и уже вызывали reducer

Alexey
20.11.2016
12:44:47
И редьюсер уже это событие обработает

Dmitry
20.11.2016
12:45:09
ну кажется понял, спасибо :)
сейчас буду тестить
вообще я прям прибалдел от Redux, очень классная штука

Alexey
20.11.2016
12:46:24
Да, неплохая

Dmitry
20.11.2016
12:46:55
я до этого все хранил в GlobalService, ну или в отдельных сервисах, что тоже не плохо, но дебажить сложнее

Alexey
20.11.2016
12:46:57
Только не надо перегибать м ним, не все в сторах надо хранить

Dmitry
20.11.2016
12:47:23
в строках?
я храню объекты, и все норм

Alex
20.11.2016
12:48:26
в сторе надо хранить только то что может понрадобиться в нескольких компонентах. ежели это какая-то мелочь нужная только в одном компоненте и отвечающая скажем за UI то это внутри компонента лучше держать

Dmitry
20.11.2016
12:48:40
ааа, понял

Alexey
20.11.2016
12:48:53
Да, я это и имел в виду, спасибо)

Dmitry
20.11.2016
12:49:04
я думал нельзя функции хранить или типа того :D

Alex
20.11.2016
12:49:29
ну если тебе нажо то можно и фунуции хранить:)
сторе- это же обычный объект js

Alexey
20.11.2016
12:50:28
Но это должен быть очень специфический кейс

Dmitry
20.11.2016
12:50:39
ну может он по дороге JSON.stringify() в общем я не буду :)

Google

Alex
20.11.2016
12:50:39
это да
ну можно и JSON.parse в обратку

Dmitry
20.11.2016
12:51:22
у меня был кейс, когда падал .parse если в объекте есть функции

Alex
20.11.2016
12:51:46
интересно надо потестить

Alexey
20.11.2016
12:52:18
Кстати вопрос у меня по редакс, экшны в виде чего используете, объекты или классы?
Грубо говоря в редьюсере switch по action.type или проверка на instanceof ?

Alex
20.11.2016
12:53:24
action.type

Alexey
20.11.2016
12:54:30
А ts в таком случае понимает что лежит в payload ?
В зависимости от type?

Alex
20.11.2016
12:56:01
а хз я редакс в ракте юзаю только ? и там flow Вроде норм. Как с ts не скажу

Alexey
20.11.2016
13:03:12
Понятно, тоже на реакте иногда приходится писать, только в тех проектах ни ts ни flow, вообще печаль(

Alex
20.11.2016
13:34:14
проверил, действительно JSON.stringify удаляет функции из объекта
Если надо все же функции, то наверное можно изгалиться так

Vlad
20.11.2016
14:30:26

Алексей
20.11.2016
14:31:46

andretshurotshka?❄️кде
20.11.2016
14:38:27

Алексей
20.11.2016
14:38:44
А вот нечего все "подсвечивать" :)

Sanjar
20.11.2016
14:44:30
Добрый вечер, кто знает группы для верстальщиков в ТГ?

Google

Алексей
20.11.2016
14:44:55
в Redux - store должен быть один ( если два - вы уже уходите от Redux и вам это лучше делать только тогда когда вы прекрасно понимаете что делаете и что теряете, а вы теряете ряд вещей когда делаете больше 1 store )
Store в Redux - хранить только состояние вашего приложения. Скачанные данные, текущую страницу списка, и т.п. Никаких функций там не должно быть by desing

Sanjar
20.11.2016
14:45:01
Я в одной был, но вышел и теперь не могу найти.


Dmitry
20.11.2016
14:53:28
А можно вопрос, вот например, мне нужно взять данные пользователя по API и засунуть в store, я это по идеи делаю в effects/user.ts
и просто в ap.component.ts или просто по старту вызываю метод Effects "GET_USER_INFO" который, если все гуд вызывает reducers "SET_USER_INFO"
так получается?
вопрос собсвтенно мне выплевует ошибку, если юзер не авторизован
Update: Observable<Action> = this.actions$
.ofType('GET_USER_INFO')
.map((action: any) => action.payload)
.switchMap(
payload => this.http.getUserInfo({})
.map(res => {
console.log(res)
if (res.code !== 'UNAUTHORIZED') {
return { type: 'UPDATE_USER_INFO', payload: res };
} else {
return {};
}
},
err => {
console.log(err);
}
)
а в синтаксисе @ngrx/effects что-то ничего не разобрать :(
ошибка не страшная, тк все Observable и приложение из-за этого не упадет, но все таки, я не догоняю, это и есть правильный способ писать с redux, effects?
или все таки не выделываться, и писать спокойно логику в сервисах, и потом призывать @ngrx/store методы уже тогда, когда я все получил и проверил


Alex
20.11.2016
15:16:22
Может у неавторизованного пользователя возвращать не пустой объект, а объект с type и payload? Это толькл предположение, хз как на самом деле

Dmitry
20.11.2016
15:20:10
я тоже не пойму, пробовал и с type, но неавторизоавнный реквест возвращает 401, и вот хз, что с ним делать :)

Алексей
20.11.2016
15:26:50

Lends
20.11.2016
15:28:19
а у меня не завёлось с angular > 2.0.2
такие вот дела)
ждём фиксов

Алексей
20.11.2016
15:31:08

Lends
20.11.2016
15:31:34
да, issue есть, они им перекидываются от angular к angular-universal
там уже пулриквест есть
не принят пока
хотя мой тоже есть, так и не приняли)
Эта группа больше не существует