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

Страница 8 из 179
Sergey
02.08.2016
20:34:39
на udemy очень крутой курс есть по ng2, человек очень сознательный, при каждом релизе вносит изменения и постоянно добавляет новые уроки, если можно то могу ссылку кинуть.

Ҫѐҏӗѫӑ
02.08.2016
20:35:25
можно конечно

почему нет

Sergey
02.08.2016
20:37:36
https://www.udemy.com/the-complete-guide-to-angular-2/learn/v4/content

Google
Sergey
02.08.2016
20:38:24
цена вообще копеечная за такой материал, но кто захочет купить не торопитесь - добавьте в лист желаний и за неделю накидают скидок.

Roman
02.08.2016
20:42:05
Прохожу этот курс как раз. По моему автор за пару дней еще лекций добавил

Sergey
02.08.2016
20:42:40
я его купил было всего 112 уроков, сейчас 325.

Roman
02.08.2016
20:43:23
Мне нравится что он действительно интересно рассказывает. И не слишком торопится и не слишком растягивает. Всё по делу

Кстати кто нибудь использовал tree-shaking для agnular 2? Мельком видел про эту возможность в angular-cli и еще проглядывал статью где автор это делает через rollup

Sergey
02.08.2016
20:44:32
очень много мелочей объясняет - по мне это самое толкое руководство на сегодняшний день.

Roman
02.08.2016
20:46:57
Интересно насколько хорошо работает на более менее крупном приложении tree shaking, а не на hello world

http://blog.mgechev.com/2016/06/26/tree-shaking-angular2-production-build-rollup-javascript/

Sergey
02.08.2016
20:49:00
Я пока пробую сделать карзину товаров, вместо бутстрапа как в курсе внедряю ангуляр материал.

Roman
02.08.2016
20:49:38
я с первым наелся. Правда 0.9.какой то

angular material всмысле. На десктопах более менее, а на мобилах медленно, особенно на андроидах

Sergey
02.08.2016
20:50:45
ага он самый, но они вроде говорят что со скоростью все норм. Сейчас найду доклад.

Roman
02.08.2016
20:51:03
css анимацию для sidabar'а кастомизировал, у него через transition как то жопно было сделано

Google
Roman
02.08.2016
20:51:19
чуть ли не left вместо translateX

Sergey
02.08.2016
20:51:47
https://www.youtube.com/watch?v=rRiV_b3WsoY&feature=youtu.be&t=4m20s

Roman
02.08.2016
20:52:45
немного не в тот чат, но я так и не осознал плюсов ng-animate

Sergey
02.08.2016
20:57:22
http://blog.mgechev.com/2016/06/26/tree-shaking-angular2-production-build-rollup-javascript/
systemjs-builder и webpack2 вроде в такое умеют как раз

Maksim
03.08.2016
04:36:12
Там про model driven forms былоо

Короче, как по мне - шаблон нужно максимально изолировать от логики, насколько это возможно

Вместо явных проверок и условий в ngif использовать там функции

Так же и с формами

Вместо реализации их через шаблон я лучше создам из через форм билдер, и буду значить что они физический есть в моем компоненте, а не создаются когда-то там ангуларом за меня

Ангуляр дает типизацию и прозрачность, и я считаю этим нужно пользоваться

Уходить от js объектов и использовать классы для своих моделей данных и т. п.

Ну и второй аргумент - тестирование

Темплейт контроллы ты не сможешь протестить юнит тестами

Только е2е

Sergey
03.08.2016
04:41:21
Ага

А кто что делает, когда данных еще нет в шаблоне, это только через ngif решается?

Maksim
03.08.2016
04:44:03
Я через ngif

Alexey
03.08.2016
06:51:21
Template driven формы ни каким образом не выносят логику в шаблон, почему вы этого не хотите понять? Вся логика остаётся изолированной и так же тестируется юнит тестами, типизация вашей формы тоже никуда не пропадает. Вы так же в компоненте формы имеете доступ к FormGroup и всем её контролам. Просто состав формы который вы все равно описываете в темплейте инпутами/селектами/чекбоксами вам не нужно ещё раз описывать через formBuilder. Директивы сами создадут его. То что вы повесили директиву ngForm на элемент формы никак не выносит никакую логику в шаблон.

FormBuilder это императивный вариант, ngForm - декларативный. Но это одно и то же

Google
Alexey
03.08.2016
06:53:51
В большинстве случаев декларативный подход удобнее имхо

Рефакторинг формы проще, изменился протокол API , убрали 1 параметр - просто выпиливаем его из темплейта в одном месте убираем и сам инпут и Control и валидатор.

В случае с форм билдером минимум в 2 местах надо рефакторить, и в шаблоне и из форм билдера убрать

А в случае кромсввлидации о которой вчера говорили то ещё в хендлере valuesChanges или как он там

Алексей
03.08.2016
07:01:17
А в случае кромсввлидации о которой вчера говорили то ещё в хендлере valuesChanges или как он там
С кроссвалидацией перегнул - не нужно в хендлере valueChanges ничего менять - это для другово

Alexey
03.08.2016
07:04:26
Да, согласен, в том примере не было завязки на контролы в хендлере

Попутал

Но все равно минимум 2 места где нужно держать состав формы остаётся

И обычно это 2 разных файла

Мне это кажется неудобным

Maksim
03.08.2016
07:08:56
А мне кажется плохим подходом мешать код и шаблоны

Все равно иногда приходится, без этого никак разумеется

Но я стараюсь этого максимально избегать

Декларативность здесь не есть гуд, как по мне

А еще кастомные валидаторы. А еще чтобы что-то получить в функцию - нужно передавать это с темплейта

Слишком большая связанность кода

Алексей
03.08.2016
07:11:28
Декларативность здесь не есть гуд, как по мне
слишком много "комбинаций" - декларотивность тут не супер помошник

Maksim
03.08.2016
07:11:40
Вот главная проблема имхо

Alexey
03.08.2016
07:43:20
Как обычно все остались при своих)

у меня последний вопрос, почему инициализация компонентов через шаблон <heroes-list [heroes]="heroes" (onHeroSelect)="heroSelect($event)"></my-hero-detail> <my-hero-detail [hero]="selectedHero"></my-hero-detail> это хорошо, и никто не просит ViewBuilder чтобы руками создать HeroesListComponent и MyHeroDetailComponent а вот инициадизация компонентов формы через <form #newHero="ngForm"> <input ([ngModel])="hero.name" required> <input ([ngModel])="hero.confirmName" confirm-validator="hero.name"> так это сразу смешивание какой-то логики с шаблоном, плохая архитектура и прочее

Google
Alexey
03.08.2016
07:48:47
по мне так это аналогичные сценарии

в одном случае мы внутри компонента описываем состав nested-компонентов

в другом случае мы описываем внутри формы состав ее контролов

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

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

Maksim
03.08.2016
08:16:17
Ну так никто не говорит что обязательно через шаблон задавать все это. При достаточном уровне упоротости можно все делать через hostbinding/listener + viewchild

Но тут разница для меня в том, что мы только связываем действия через шаблон

Равно как и форму мы только связываем

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

Alexey
03.08.2016
08:19:12
так нет же экспрешенов в ng2 вроде

как там код писать в шалонах?

Maksim
03.08.2016
08:19:47
Еще раз: не вижу ничего плохого заюзать темплейт форму для чего-то маленького, но для больших форм всегда использую модели, и работаю с ними. Верстка может измениться, тс останется валидным и рабочим

Там js в ""

Ну с ограничениями, но js

Типа ничего не мешает делать <p *ngFor="abc of ["this", "is", "array"]">{{abc}}}</p>

Например

Sergey
03.08.2016
08:22:32
Типа ничего не мешает делать <p *ngFor="abc of ["this", "is", "array"]">{{abc}}}</p>
Нет уж, спасибо, пусть tsx для такого сделают

Alexey
03.08.2016
08:23:33
Максим вы бы почитали доку или пример бы сами попробвоали

EXCEPTION: Template parse errors: Unexpected closing tag "p" (" <h1>{{title}}</h1> <h2>My Heroes</h2> <p *ngFor="abc of ["this", "is", "array"]">{{abc}}}[ERROR ->]</p> <ul class="heroes"> <li *ngFor="let hero of heroes" "): AppComponent@3:55

нет такого в ng2

Google
Alexey
03.08.2016
08:24:22
нет кода в шаблонах, нельзя его там писать

Maksim
03.08.2016
08:25:06
Сори что фото, нету возможности писать с компа

Это работает. Там есть код. Я с телефона криво написал что-то видимо

А, ну я кавычки не те поставил в воде

Коде *

То что на фото - работает

Alexey
03.08.2016
08:28:04
ок, оно работает. Значит ли это то теперь не надо использовать ngFor?

раз там можно написать код если хотеть

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

я не претендую на истину

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

Sergey
03.08.2016
08:29:21
Кому как удобнее. Ну и пока model driven form не довели до ума

Maksim
03.08.2016
08:30:32
ок, оно работает. Значит ли это то теперь не надо использовать ngFor?
Нет конечно. Это идиотизм писать там код. Просто для примера показал, что если очень хочется - можно и так извратиться

Alexey
03.08.2016
08:31:36
я бы на месте создателей ng2 запретил бы такие экспрешены в шаблонах

непонятно зачем они сделали их поддержку

Maksim
03.08.2016
08:33:42
Да у них там просто парс js

Ну функцию я там создать так и не смог кстати

Разными вариантами пробовал

Просто ради интереса

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

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