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

Страница 92 из 179
Алексей
27.11.2016
14:15:24
Описание есть. Размеры гридов прекрасно отображааются на этой странице.
Ow.. ок. Ну bootstrap легко конфигурировать https://v4-alpha.getbootstrap.com/layout/grid/#customizing-the-grid

Dmitry
27.11.2016
17:02:56
а где можно почитать про формы в Angular 2, только свежую инфу?

доки прочитал, но не уверен, что template driven это единсвенный вариант

Alexander
27.11.2016
17:53:13
загугли model driven forms angular 2

Google
Alexander
27.11.2016
17:53:39
сайт называется что-то типа thoughtgram - довольно хорошо все расписано

Алексей
27.11.2016
18:03:31
доки прочитал, но не уверен, что template driven это единсвенный вариант
Это не только не единственный но и не самый лучший http://blog.thoughtram.io/angular/2016/06/22/model-driven-forms-in-angular-2.html

https://youtu.be/xYv9lsrV0s4

Dmitry
27.11.2016
18:09:16
спасибо большое

marat
27.11.2016
18:14:09
https://youtu.be/xYv9lsrV0s4
Ухты, я и не знал, что она на презентациях выступает

Алексей
27.11.2016
18:21:25
Ухты, я и не знал, что она на презентациях выступает
Да не только - у нее было прикольное видео (что-то вроде мастер класса) https://youtu.be/E92KS_YCSf8

marat
27.11.2016
18:24:42
Да не только - у нее было прикольное видео (что-то вроде мастер класса) https://youtu.be/E92KS_YCSf8
Почему то думал, что она в команде ангулара как китайцы с индусами работает. Обязательно посмотрю, прикольная тетка

Dmitry
27.11.2016
18:36:53
Ребят, а как быть с селектами в FormBuilder?

по formControlName не биндится

биндить ngModel?

а стоп, мой косяк ?

Алексей
27.11.2016
18:39:59
а стоп, мой косяк ?
Да все должно работать. + Не забывайте что формы от модели называются Reactive Forms - поэтому там вот такие чудеса возможны // editProfileForm uses autosave this.editProfileFormGroup.valueChanges .debounceTime(1000) .filter(() => this.editProfileFormGroup.valid) .distinctUntilChanged() .switchMap((values) => this.http.post(Constants.API_PREFIX + '/profile', values).retryWhen(attempts => // incremental backoff attempts .zip(Observable.range(1, 3), (_, i) => i) .flatMap((i: number) => { return i < 3 ? Observable.timer(i * 1000) : Observable.throw('Retry was not helpfull'); }) )) .subscribe(null, this.onAutoSaveProfileFail);

Dmitry
27.11.2016
18:41:05
ОМГ

Google
Dmitry
27.11.2016
18:41:20
мощно

а что делать с сабмитом? вешать просто на форму?

Алексей
27.11.2016
18:43:14
Это Debounce + фильтрация валидных данных + отмена действий если по факту ничего не поменялось (к примеру удалил символ и тутже такойже добавил) + сразу делается запрос (автосохранение) и делается 3 retry с Incremental backoff

а что делать с сабмитом? вешать просто на форму?
<form novalidate [formGroup]="changeEmailFormGroup" (ngSubmit)="onChangeEmailSubmit(changeEmailFormGroup)">

либо как выше показал - просто на изменения подписываешься и делаешь автосохранение

Dmitry
27.11.2016
18:44:47
окай, спасибо спробую

Вопрос, а как быть с массивом? например чекбоксы или кастомный мультиселек?

Dmitry
27.11.2016
19:00:49
как в formcontrol заигачить массив? просто кастомной функцией?

Alexander
27.11.2016
19:01:22
ну ты можешь написать свой форм контрол

value которого будет массив с выбранными пунктами

marat
27.11.2016
19:01:51
там был контрол для этого

что-то вроде ControlArray

ща поищу

Alexander
27.11.2016
19:02:07
formArray

Dmitry
27.11.2016
19:02:22
чета сложна

Алексей
27.11.2016
19:02:34
https://www.youtube.com/watch?v=xYv9lsrV0s4&feature=youtu.be Посмотрите видео

Dmitry
27.11.2016
19:02:50
смотрю

Алексей
27.11.2016
19:03:20
Alexander
27.11.2016
19:03:40
проще будет, если начнешь думать об этом в терминах модели данных. массив, строка, число - это способы представления

Google
Alexander
27.11.2016
19:04:10
но по сути своей у тебя есть свойство А и есть контрол А', который дает UI для его редактирования

marat
27.11.2016
19:04:15
кстати да, если массив это значение поля, то это просто formControl

а если массив контролов, тогда formArray

Alexander
27.11.2016
19:05:44
хотел с работы вопрос задать, но кто-нибудь писал структурные компоненты?

задача: сделать компонент, который будет контейнером для редактора сущности и ее отображения

типа <switcher><view-entity *viewMode><edit-entity *editMode></switcher>

Dmitry
27.11.2016
19:08:44
Зачем тебе массив? Можешь пример.
например кастомный селект с мультизначениями или чекбоксы, если проще

просто не догоняю саму модель, вот есть кастомный инпут, я объявил в formbuilder property: [[], Validators.required]

Alexander
27.11.2016
19:09:36
view-entity и edit-entity могут быть разными. я это сделал, но по каким-то причинам если писать <div *viewMode><p>Hello!</p> {{ vehicle.model } </div> у меня выводилось Hello, но мой баиндинг не выводился. хотя информация точно была

Alexander
27.11.2016
19:10:53
да, завтра уже на работе код будет и набросаю. скину сюда

Dmitry
27.11.2016
19:13:23
втыкаю видос, может я просто усложняю все

Алексей
27.11.2016
19:13:53
просто не догоняю саму модель, вот есть кастомный инпут, я объявил в formbuilder property: [[], Validators.required]
<select [(ngModel)]="selectedCity"> <option *ngFor="#city of cities" [ngValue]="city">{{city.name}}</option> </select> class MyComp { selectedCity: Object; cities: Object[] = [ {name: "SF"}, {name: "NYC"} ]; }

Геннадий
27.11.2016
19:14:04
Можно узнать, я ли этот Геннадий?

Геннадий has been warned (1/3)

Контекста вообще нет

Алексей
27.11.2016
19:14:49
Не знаю.. я всем подряд раздавал - могли попасть под горячую руку.

Google
Алексей
27.11.2016
19:15:34
yep, но мне нужно, чтобы selectedCity = ['city']
Все понял. Что-то вроде Tag input?

Alexander
27.11.2016
19:17:45
ага
http://blog.thoughtram.io/angular/2016/07/27/custom-form-controls-in-angular-2.html - Алексей уже ссылку скинул

Dmitry
27.11.2016
19:17:55
смотрю сейчас ее

Alexander
27.11.2016
19:18:00
вот тут описано как для обычного счетчика сделать компонент

но в твоем случае контрол будет возвращать не число, а массив

контрол = компонент

Dmitry
27.11.2016
19:19:35
йеп, с отдельным компонентном понятно, но я понял, что есть же чекбоксы, которые стандартные контролы, значит могло быть и стандарнтое решение

Alexander
27.11.2016
19:20:32
не пробовал, но можно сделать formArray из чекбоксов и потом собрать выбранные по идее

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

Dmitry
27.11.2016
19:24:42
спасибо за помощь так и сделаю

Dmitry
28.11.2016
00:05:32
https://www.youtube.com/watch?v=a6v4z1kSFu4

советую начинающим кто еще не смотрел

+ дешку про observable чел объясняет

Alexander
28.11.2016
05:47:51
Пример на Plunkr можете набрасать? Скинуть ссылку?
накидал минимально рабочий пример на планкере, и в нем все работает. что теперь с этим делать совершенно непонятно

https://plnkr.co/edit/MSR1zGU0zhYBEj6woQSU?p=preview

Алексей
28.11.2016
05:49:19
накидал минимально рабочий пример на планкере, и в нем все работает. что теперь с этим делать совершенно непонятно
Накидали но похоже не сохранили :) А вообще это значит что проблема не в Angular а где-то в коде. Нужно искать

Alexander
28.11.2016
05:49:20
вот правильная ссылка

Google
Alexander
28.11.2016
05:49:50
ага, впервые планкером пользуюсь. Алексей, можно и на ты, если так будет комфортней

да вот не хочется пока считать, что проблема в коде :), думаю может версия ангуляра виновата. хотя конечно вероятность этого гораздо ниже

Алексей
28.11.2016
05:52:33
ага, впервые планкером пользуюсь. Алексей, можно и на ты, если так будет комфортней
привычка (мне многие об этом говорят :) ) один вариант который вы можете у себя в проекте сделать это сохранить ваш код (git commit) и начать удалять вещи. Прям удалять пока не прийдете к plnkr варианту. Где-то в ходе этого процесса станет ясно что не так.

Alexander
28.11.2016
05:53:32
сейчас так и поступлю, спасибо. есть подозрение, что намудрил с ChangeDetectionStrategy (в планкере стратегия дефолтная)

Alexander
28.11.2016
06:21:36
так и есть. в методе ngOnInit я делал выставление некоторых значений и все заработало после того, как сделал в конце метода this.changeDetector.detectChanges()

правда до конца непонятно почему так. есть рекомендации для хорошего видео/статьи по changeDetector-у?

а то вижу у него много методов типа detectChanged, markForCheck и т.п. и довольно стремно не понимать когда и зачем их использовать

Eight
28.11.2016
08:55:40
Всем привет! Прописал такой конфиг в package.json "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "tsc": "tsc", "tsc:w": "tsc -w", "start": "concurrent \"npm run tsc:w\" \"lite-server -c bs-config.json\" \"gulp watch\" " }

Но lite-server все-равно запускается без учета настроек когда пишу npm start, почему?

В bs-config.json указана только папка { "server": {"baseDir": "./dist"} }

Стас
28.11.2016
08:59:48
Ребят, не подскажите прогу под os x для скринов с прокруткой?

Николай
28.11.2016
09:00:39
а CMD+Shift+4 ?

ну и CMD+Shift+3

Стас
28.11.2016
09:01:28
они бещ прокрутки

Николай
28.11.2016
09:01:48
а что значит прокрутка? (сорьки)

Стас
28.11.2016
09:02:21
скролбар на странице

нужна автопрокрутка и скриншотинг содержимого

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

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