
Valery
13.01.2017
14:08:01

Gleb
13.01.2017
14:10:07
@Ai_boy Добрый вечер, хотел спросить DCI как то уместно сравнивать с MVVM в .NET? то есть component - View, DCI - ViewModel

Yuriy
13.01.2017
14:12:52
Можно в ngClass юзать динамические классы?
хочу типа такого
<span [ngClass]="{ [collapseIconClass]: isOpen, [expandIconClass]: !isOpen }" aria-hidden="true"></span>
но ангуляр не хавает вычисляемые ключи

mr
13.01.2017
14:34:34

Google

Igor
13.01.2017
14:34:43

Yuriy
13.01.2017
14:48:43

mr
13.01.2017
14:50:10

Алексей
13.01.2017
15:27:39

Gleb
13.01.2017
15:30:07
множества view, да кажется я точно не так понял

Алексей
13.01.2017
15:41:14
Не вы можете DCI с одним View делать но точка разрыва (то как делиться DCI на отдельные сущности) она реже привязанна к view и больше к UseCase. (К примеру не форма нанятия работника а процесс нанятия работника)

Gleb
13.01.2017
16:08:59
то есть я потом сам процесс как то переиспользовать могу?

Yuriy
13.01.2017
16:24:22
сорри за нубский вопрос. как я могу получить дочерние компоненты?
<cb-accordion [closeOthers]="false" [startOpen]="true">
<cb-accordion-item [heading]="'Title as attribute'">
Accordion group 1 contents.
</cb-accordion-item>
</cb-accordion>
После инита главного компонента хочу пройтись по дочерним и установить некоторые опции.
всё, словил в AfterViewIinit )

Алексей
13.01.2017
16:41:14

Gleb
13.01.2017
16:45:20
и из него уже вызов сервисов, dispatch в стор? а в плане тестирования я его тестирую только на предмет того что я принял от компонента и передал дальше?
Интересная штука, странно что не трендовая, по ней не так много инфы

Dmitry
13.01.2017
16:57:21
подключил primeng tree, говорит что мой компонент footer не один типа так нельзя, переименовываю в myFooter, говорит myFooter не один, отключаю primeng TreeModule все ок, самый прикол в том что у меня футер сайдменю и лефт меню написаны буква в букву, но при подключении модуля происходит какой то эпичный пиздец

Google

Dmitry
13.01.2017
16:57:26
ни кто не сталкивался?
@tairs @davidmart

David
13.01.2017
18:03:49

Igor
13.01.2017
18:09:58
А в связке с ngrx кто то работает?
я начал работать, взял в новый проект ngrx, не знаю что из этого выйдет, тесты пока не писал. Пока что проект сполшной каркас с парой прототипов, ngrx используется в одном месте пока, для модуля чата. Пока что двоякие ощущения от него


Alexey
13.01.2017
18:35:18
Я тоже заюзал недавно ngrx, тесты тоже пока не писал но очевидно что Effect это обычные injectable сервисы которые легко в тестах замокать, вместо вызовов API в моке можно легко вернуть просто Observable.of(fakeData)
Или вообще эффект заменить на пустой класс т.е отключить все эффекты и в тестах где надо вызывать store.dispatch() с тестовыми данными
Ui компоненты не должны знать откуда данные в стор приходят им все равно
А можно не мокать даже effect а просто не импортировать его в testbed модуль
И проблем вообще не будет
Дергай экшны с фейковыми данными и тести ui
На сами Effect сервисы тесты написать тоже легко, можно замокать сервисы а можно замокать сеть через fakeBackend
Для тестов редьюсеров вообще голого jasmine достаточно, это чистая функция


Gleb
13.01.2017
18:45:29
Спасибо за ответы! и еще хотел вот компонент вызывающий dispatch скажем по клику или там по вводу в инпут будет тестироваться просто spy на вызов dispatch в каком нибудь фейкСервисе любом с нужным экшн?
и все это будет считаться протестированый кейс
верно?
it('should highlight call', fakeAsync(() => {
const hds = fixture.debugElement.injector.get(ngrx.Store);
const saveSpy = spyOn(hds, 'dispatch');
rootEl.nativeElement.dispatchEvent(newEvent('mouseenter'));
expect(saveSpy.calls.count()).toBe(1);
}));
скажем вот сюда добавить еще проверку на то что вызывается именно нужный экшн и кейс того что по mouseenter вызывается highlight покрыт, так ведь?
Далее я уже покрою просто сам редюсер и эффект


Alexey
13.01.2017
18:55:56
Да, это норм вариант.
Redux полностью отделяет ui от бизнес логики, ответственность компонента заканчивается на вызове dispatch
Только если в этом компоненте у тебя есть store.subscribe() то надо протестить все кейсы которые могут прийти из стора, все что влияет на компонент

Google

Alexey
13.01.2017
19:03:35
Т.е самому в тестах подергать экшны которые инициируют разное состояние для этого компонента, тот же highlight, проверить что ui отрисуется с подсветкой если в сторе есть такой флаг

Gleb
14.01.2017
06:53:10
Кароче натестировался ngrx вдоволь , все очень коротко в плане ui и еще короче в редусерах
до effects не дошел, подзабил, там тока хттп
Где то видел ООП подход к организации с ngrx, если у кого по близости в закладках скиньте плиз

Alexey
14.01.2017
07:24:08
Наверно в докладе @Ai_boy SOLID в JS

Vladimir
14.01.2017
07:25:50
Там просто про redux было

Таир
14.01.2017
11:07:04
у кого нить вылетала ошибка, что не получается выявить entryModule при ng serve?

Алексей
14.01.2017
11:10:08

Таир
14.01.2017
11:10:14
с ng-cli beta.25 это решилось по идее, но мне лично не нравится, что cli ищет входной модуль строго через стат.анализ
let bootstrap = () => platformBrowserDynamic().bootstrapModule(AppModule, { providers }).catch((reason) => {
console.error(reason);
});
..promise.then(bootstrap)
раньше с этим билд не срабатывал
но потом кто-то предложил костыль
if (window != window) {
platformBrowserDynamic().bootstrapModule(AppModule);
}
с beta.25 этот костыль начал мешать
я его убрал, все заработало

Алексей
14.01.2017
11:13:02
Se la vi. Если что есть алтернативы Angular CLI https://github.com/AngularClass/angular2-webpack-starter
Ну и вообще beta она и в африке бета :)

Таир
14.01.2017
11:13:25
я вообще к чему спрашиваю
я сделал патч на ng-cli, который позволяет однозначно решить эту проблему

Google

Таир
14.01.2017
11:15:04
который позволяет гвоздями прибить entryModule в angular-cli.json
думал, если есть, кто еще от этого пострадал с ng-cli, довести его до ума и послать PR

Алексей
14.01.2017
11:17:18

Таир
14.01.2017
11:17:35
ок
спасибо!
поздравляю @perminovx, вы по ходу юбилейный участник чата :)

Vitaly
14.01.2017
11:32:48
))))

Таир
14.01.2017
11:32:55
шестисотый

Timur
14.01.2017
11:33:08
Давайте выдадим приз!
Призовой бан! ? ?

sanqa
14.01.2017
16:40:12
Hi, пацаны есть у кого на гите готовое ToDo с роутами ?поделитесь ссылкой pls
роуты типо /users, /user/:id, /user/:id/edit
Буду благодарен

Andrey
14.01.2017
17:02:55
в доке роутера всё подробно расписано с готовыми примерами.

Таир
14.01.2017
21:03:51
https://github.com/angular/angular-cli/pull/4013
если у кого-то есть проблемы со стат.анализом кода, голосуйте за этот PR

Vlad
15.01.2017
15:58:39
Angular material использует кто ?

Константин
15.01.2017
16:02:36
не.
Мне кажется он лишним. И трудно объяснить дизайнеру ,что у нас новая парадигма и т.п.
Эта группа больше не существует