@angular2Эта группа больше не существует

Страница 172 из 179
Alexey
03.02.2017
11:17:04
мы не можем ничего форкджоинить и вообще комбинировать как то

их вызов

это делается под капотом роутера

и там судя по исходникам resolve: {} собирается в массив и выполнятеся через Observable.concatAll()

Google
Alexey
03.02.2017
11:18:06
concatAll выполняет все последовательно

если observable холодные

Олег
03.02.2017
11:20:06
ты в имплементации resolve не можеш сделать forkjoin?

ну или я не понимаю проблемы)

Igor
03.02.2017
11:20:38
так если у него три разных ресолвера, это ему придется писать четвертый с форкджойном, а он не хочет

да и тупо это

Alexey
03.02.2017
11:20:49
именно

все верно

Igor
03.02.2017
11:20:59
должно паралельно быть как с промисами

мне кстати вообще ресолверы не нравится. Пока они ресолвятся юзер видит текущий компонент, а урл уже поменялся. И создается ощущение что интефейс тупит. Мне больше понравилось в onInit данные запрашивать, а темплейт в ngIF обарачивать, тогда отклик мгновенный, а в компоненте можно лоадером покрутить

Alexey
03.02.2017
11:26:29
думал об этом варианте

но мне нужно резолвер после canActive запустить

там еще guard стоит перед ними

Google
Макс
03.02.2017
11:43:07
Блин, не понимаю. Объясните, пожалуйста, русским по белому... Angular 2 вообще всегда работает с серверной частью?

Lends
03.02.2017
11:44:02
что, простите?

Макс
03.02.2017
11:44:16
Нельзя его тупо как Angular 1 подключить в виде одной библиотечки и сделать интерфейс себе?

Lends
03.02.2017
11:44:33
конечно можно

Eugene
03.02.2017
11:44:47
А причем тут серверная часть?:)

Lends
03.02.2017
11:45:12
небось смущает ng serve :)

Макс
03.02.2017
11:46:30
А чего он в примерах везде с компиляцией идет всякой? Открываю https://angular.io, а там говорят - посмотрите классный QuickStart seed. Запускаю, а там встроенный сервак.... шта?! Нельзя было просто index.html сделать?

Lends
03.02.2017
11:46:53
это ж для простоты и удобства

посмотри примеры с планкера

Макс
03.02.2017
11:48:01
Может насоветуете какой-то совсем нуб-гайд классный?

Dmitry
03.02.2017
11:54:14
Всем привет, а в ng2 есть что-то вроде props.children, как в реакте?

хочу обернуть все в компонент, который будет рендерить вообще все что ему передадут, и просто добавлять свои теги

Vladimir
03.02.2017
11:57:49
ng-content

Dmitry
03.02.2017
11:59:04
спасибо, ушел гуглить ?

Олег
03.02.2017
12:00:13
Таир
03.02.2017
12:03:41
Пакет становится меньше, но полностью не исчезает, конечно
Не становится существенно меньше, иногда даже больше

Макс
03.02.2017
12:03:43
спасибо, я там уже :)

Константин
03.02.2017
12:08:11


Gordey
03.02.2017
12:10:18
return { passwordRepeatCompare: { valid: control.value === this.form.get('passwordNew').value } }

sanqa
03.02.2017
12:10:49
а обязательно использовать FromGroup ?

Google
Gleb
03.02.2017
12:11:04
import {FormGroup} from '@angular/forms'; export class ConfirmPasswordValidator { static matchingPasswords(passwordKey: string, confirmPasswordKey: string) { return (group: FormGroup): {[key: string]: any} => { let password = group.controls[passwordKey]; let confirmPassword = group.controls[confirmPasswordKey]; if (password.value !== confirmPassword.value) { return { mismatchedPasswords: true }; } } } }

это не на подсократить правда

Олег
03.02.2017
12:11:27
инлайн валидаторы это сильно

Lends
03.02.2017
12:11:52
зачем let? там явно const

sanqa
03.02.2017
12:12:09
login(mail: string, pass: number) { mail = mail.trim(); if (!mail || !pass) { return; } this.dat = { mail: mail, pass: pass }; this.aservice.login(this.dat) .then(user => { this.loading = false; if (user) { this.router.navigate(['/main']); } }); }

а этот способ на много хуже ?

Алексей
03.02.2017
12:12:24
Валидаторов в приложении бывает не так много.. вынесите из в отдельный файл или пакет и не мучайтесь

Gleb
03.02.2017
12:12:41
Конечно, плюс это исопльзовать удобно в extra валидаторах

Константин
03.02.2017
12:14:05
а обязательно использовать FromGroup ?
Если пользуешь Реактивные формы, то да. Но они реально удобные. Попробуй ;)

sanqa
03.02.2017
12:15:48
что значит реактивные формы

Vladimir
03.02.2017
12:16:16
Каждое поле - observable

Ну и observer

Subject, грубо говоря

Gleb
03.02.2017
12:17:15
В доках пишут оснонвой плюс таких форм в тестировнии, а как тестировать не показали

sanqa
03.02.2017
12:17:30
DD

Vitaliy
03.02.2017
12:23:39
???

Константин
03.02.2017
12:27:32
Лично мне нравится, что вся логика работы формы в коде, валидаторы и т.п. хлам. А в представлении только разметка и верстка

Gleb
03.02.2017
12:28:56
А вот тестируем мы при таком подходе не хтмл? то есть можем прям инстансы филдов дергать из формы менять и expect ?

а не искать на странице хтмл инпут итд

Google
Alexey
03.02.2017
12:30:31
А вот тестируем мы при таком подходе не хтмл? то есть можем прям инстансы филдов дергать из формы менять и expect ?
вопрос: зачем тестировать инстансы филдов в тестах если пользователь в итоге будет кликать по форме и заполнять инпуты?

что будет гарантировать этот тест?

Gleb
03.02.2017
12:32:26
Ну это вопрос и предположение одновременно было =) https://semaphoreci.com/community/tutorials/testing-components-in-angular-2-with-jasmine Не так много статей просто по тестированию форм, вот если тут смотреть то ведь так и получается? или перепутал что то

https://github.com/gonzofish/semaphore-ng2-webpack Вот гит из статьи

прихоится по статьям/блогам лазить , т.к в офф доке именно про тестирование форм, реактивных не реактивных не слова

там есть урыввками про инпуты, но те без валидации

Vladimir
03.02.2017
12:36:25
А зачем проверять инпуты?

Их нужно проверять, если они выставляются в зависимости от другого параметра

Alexey
03.02.2017
12:42:04
да надо не инпуты скорей проверять а форму целиком, я формы выношу в компоненты, например <user-form [user]="newUser" (onSubmit)="submit($event)" (onCancel)="cancel($event)">

это глупый компонент, он отрисовывает форму, валидирует ввод и если форма валидно заполнена при сабмите прокинет JSON наверх

логично ее тестировать через TestHostComponent, просто рендерим ее в тесте, заполняем инпуты имитируя пользовательский ввод

проверяем валидный/невалидный ввод

1) когда не валидно заполнили и нажали submit то onSubmit евент не приходит

Gleb
03.02.2017
12:44:29
ну да, но заполнить можно форму реактивную без хтмл ведь

ну вот весь этот кейс без хтмл можно

типа как юнит

Alexey
03.02.2017
12:44:39
2) когда валидно заполнили и засабмитили то проверяем что onSubmit выполнился и что в нем пришло

Gleb
03.02.2017
12:44:42
если я сам правильно понял

Alexey
03.02.2017
12:46:00
да неважно что у тебя под капотом внутри user-form, template-driven или model-driven form

я бы тестировал все равно как пользователь

Google
Alexey
03.02.2017
12:46:10
отрендерил и прокликал

и это не e2e тест

это unit test

изолированно

в TestBed

как пользователю который заполняет в итоге форму так и разработчику который потом вставляет где-то <user-form> компонент им обоим без разницы какая реализия внутри

главное чтобы API формы работало

для юзера API это форма в браузере с инпутами, для разработчика API это @Input и @Output этого компонента

Алишер
03.02.2017
12:48:59
Подскажите, почему не применяются стили компонента, когда использую ng-content. Пример: style: ul.red li{ background: red; } Компонент <ul class="red"> <ng-content select=[links]></ng-content> </ul> Родитель: <my-nav> <li links *ngFor="let nav of navs">{{nav.title}}</li> </my-nav>

Alexey
03.02.2017
12:50:09
посмотри на скомпилированный код css

Gleb
03.02.2017
12:50:14
Testing Considerations We can write isolated unit tests of validation and control logic in Reactive Forms. Isolated unit tests probe the component class directly, independent of its interactions with its template, the DOM, other dependencies, or Angular itself. Such tests have minimal setup, are quick to write, and easy to maintain. They do not require the Angular TestBed or asynchronous testing practices. That's not possible with Template-driven forms. The template-driven approach relies on Angular to produce the control model and to derive validation rules from the HTML validation attributes. You must use the Angular TestBed to create component test instances, write asynchronous tests, and interact with the DOM.

Я не берусь спорить если не уверен, но я как понял вот темплейт формы они говорят мол тестить надо как раз как хтмл, а эти можно просто инстансы тестить

Алишер
03.02.2017
12:51:18
посмотри на скомпилированный код css
если я внутри компонента создам li - она будет красной, а когда Projection li не перекрашиваются

Alexey
03.02.2017
12:52:23
если тестишь без дома то ты проверяешь логику формы

и только

это хорошо конечно

Gleb
03.02.2017
12:53:27
хыы

я понял

ну да наверное ))

Alexey
03.02.2017
12:54:13
но не дает гарантии того как у тебя в итоге эта форма отрендерится и будет взаимодействовать с конечным пользователем

Страница 172 из 179

Эта группа больше не существует Эта группа больше не существует