
? ethorz
25.07.2016
12:48:58
чем оф. апи

Sergey
25.07.2016
12:49:14
библия ангулярщика

? ethorz
25.07.2016
12:49:29
сенкс

Google

kaflan
25.07.2016
13:01:09
ng-book есть более новее чем 2013,
по 1.3-1.5

Vitaliy
25.07.2016
13:29:41
недавно тут по ng2 кидали ссыль
если надо могу скинуть

Anthony
25.07.2016
13:36:34
Все книги можно найти в разделе "Документы" этого чата

Denis
25.07.2016
13:38:28
Ребят, есть вопрос, как лучше всего делать связь между компонентами (допустим я в одном компоненте меняю параметры объекта чекбоксами, а во втором компоненте у меня кнопка, при нажатии на которую эти параметры заменяют параметры объекта)

Vitaliy
25.07.2016
13:38:31
ну тем более тогда :)
в ng2 для этого @Input() @Output() используется

Denis
25.07.2016
13:39:27
Да, но компоненты соседние

Vitaliy
25.07.2016
13:39:47
значит через родительский

Denis
25.07.2016
13:39:47
Т.е. мне нужно в родителя, а потом во второй?

Vitaliy
25.07.2016
13:39:54
да

Denis
25.07.2016
13:40:19
А сервисом это реализовать как-то можно?

Google

Vitaliy
25.07.2016
13:40:42
можно - глобальные евенты типа ))
это ж просто, издание / подписка
но, глобальные - это не хорошо

Denis
25.07.2016
13:42:34
Ну, а сервисом, но не глобально. Подключить к двум компонентам и связать, так нельзя?

Дмитрий d
25.07.2016
13:43:15
повторюсь ещё раз, попробую сформулировать иначе)
чат, есть селектлист, в нём несколько объектов, разделённых по признаку true/false. Я выбираю один, настраиваю, выбираю следующий - происходит сохранение предыдущего, и признак изменяется с false на true. А в селектлисте выбирается следующий объект (не тот, что я выбрал, а следующий!). Автоназначение выбранного элемента не помогает. Что можно сделать ещё? Как-то можно сделать так, чтобы angular не выбирал сам значения в селектлисте?

Denis
25.07.2016
13:43:20
Просто как-то грязно выходит через родителя

Vitaliy
25.07.2016
13:43:26
можно, просто внутри сервиса синглтон будет, да можно как угодно)

Denis
25.07.2016
13:44:11
А что такое синглтон??

Vitaliy
25.07.2016
13:45:01
ну почему, у Вас родитель хранит данные и пробрасывает через пропсы данные дочерним, хотите поменять данные делайте как аля в redux, евент пробрасывайте наверх для изменения стора
))) ну синглтон - это у Вас один объект создается, который шарит подписку, на observables
yfghbvth
например

Denis
25.07.2016
13:47:30
Спасибо за ответ, нужно попробовать. А как лучше делать, через сервисы или перебрасывать через родителя?
Просто я сделал через родителя, но мне кажется это немного не чисто


Vitaliy
25.07.2016
13:48:10
import {EventEmitter, Injectable} from 'angular2/core';
export interface IEmitData {
key: string;
data: any;
who?: string;
}
@Injectable()
export class EventService implements IEventService {
private emitter: EventEmitter<IEmitData>;
constructor(){
this.emitter = new EventEmitter<IEmitData?true);
}
emit(data: IEmitData){
this.emitter.emit(data);
}
subscribe(key: string, callback: (data: any)=>void): any {
return this.emitter.subscribe((i) => {
var d = <IEmitData>i;
if (key != d.key)
return;
callback(d.data);
});
}
}
export interface IEventService {
emit(data: IEmitData);
subscribe(key: string, callback: (data: any)=>void);
}
когда давно писал) вот - EventService ижектите в буутстрап
и все потом в компонентамх можете через emit({...}) инициировать событие а гдето подписаться на него subscribe({...}) просто по ключу
строковый ключ

Denis
25.07.2016
13:51:18
Интересно, попробую) Спасибо

Google

Denis
25.07.2016
13:52:15
А есть работающий пример в опенсорсе?

Vitaliy
25.07.2016
13:52:24
не забывать главное отписываться когда компонент уничтожается

Denis
25.07.2016
13:52:52
А это как?
Молодой еще?

Vitaliy
25.07.2016
13:53:29
ну у ангулара же есть жизненные циклы компонентов, ngOnDestroy
например и там прописать unsubscribe
github.com/iwnow/ng2test
вот тут что то было у меня)
ng2test/app/source/browser/ts/services/
там как пример - изменение языка на сайте чере зэтот сервис, у всех компонентов подписка на событие изменения языка
и отписка есть соответсвенно
browser/ts/components/login.ts
например, ngOnInit() и ngOnDestroy() посмотрите


Yung
25.07.2016
21:40:41
Котаны, есть какой-нибудь адекватный способ получения данных из дочерней компоненты? Ну они же вроде изолированы, все дела.
У меня тут костыль такой, есть две компоненты, в родительской сорт оф враппер для сабмита формы, в нее подключается дочерняя с редактором текста. Проблема в том, что данные с дочерней держит в себе контроллер, постоянно подгружает через директиву на on change копаясь в ДОМе.
Карочи, данные есть в переменной в контроллере, их надо оттуда получать в родительскую чтобы засабмитить форму, но я чет ниасилил как это сделать лучше, потому как вроде прямого обращения к дочерней или родительской компоненте не завезли (или завезли?)


Дмитрий
26.07.2016
07:34:36
Котаны, есть какой-нибудь адекватный способ получения данных из дочерней компоненты? Ну они же вроде изолированы, все дела.
У меня тут костыль такой, есть две компоненты, в родительской сорт оф враппер для сабмита формы, в нее подключается дочерняя с редактором текста. Проблема в том, что данные с дочерней держит в себе контроллер, постоянно подгружает через директиву на on change копаясь в ДОМе.
Карочи, данные есть в переменной в контроллере, их надо оттуда получать в родительскую чтобы засабмитить форму, но я чет ниасилил как это сделать лучше, потому как вроде прямого обращения к дочерней или родительской компоненте не завезли (или завезли?)
$scope.$parent и $scope.$childScope (первый вариант более нормальный)
А вообще у тебя двустороннее связывание есть

? ethorz
26.07.2016
07:37:22
я не очень понял, обычные джейкверные методы в библиотеке нет?
у ангуляра 1
типа .find, .addClass

Дмитрий
26.07.2016
07:38:15

Google

Дмитрий
26.07.2016
07:38:35
Работает через element в link спокойно, например

? ethorz
26.07.2016
07:38:45
про jqLite слышал, то бишь урезанный jquery как я понимаю?
т.е.

Дмитрий
26.07.2016
07:39:10
Ага. find только по тегу и всё в таком духе

? ethorz
26.07.2016
07:39:16
возможности jq только чуть под ангуляр запилен
понял
спасибо
не очень хочется плодить воду, хотелось вообще отказаться от jq

Дмитрий
26.07.2016
07:43:46
jqLite на первое время хватит https://docs.angularjs.org/api/ng/function/angular.element но по идее надо всё в итоге с переменными и прочим ангуляровским добром переписать

? ethorz
26.07.2016
07:45:19
я щитаю для небольшого проекта, а точнее где нет анимаций джейкверных
то этого достаточно будет

Andrei
26.07.2016
08:07:28
Всем привет! Как вы организовывате css в своих проектах на первом Angular? Поделитесь опытом. Есть такие, кто в темплейтах через syle стили пишет?

? ethorz
26.07.2016
08:08:15
привет, а зачем?
в чем проблема писать на less? :)
хотя зависит от проекта)

Михаил
26.07.2016
08:12:41
Мне такая схема больше всего по душе

Andrei
26.07.2016
08:13:26
привет, а зачем?
Просто сейчас сесть желание разбить ui на компоненты, чтобы потом было проще перейти на 1.5 и в перспективе на 2. Если для каждого компонента добавлять свой файлик стилей в отдельную папку css, то потом трудно с ними рабоать, хочется, чтобы стили лежали рядом с компонентом (у меня это директивы пока).

? ethorz
26.07.2016
08:14:08
а, ну по сути это по логике БЭМ
*методологии

Google

Михаил
26.07.2016
08:14:50
Разбивать по "технологиям" - старый добрый способ, но на больших проектах начинаешь сильно путаться. Лучше по "смыслу", чтобы рядом лежали все файлы, относящиеся к данному функционалу.

Andrei
26.07.2016
08:15:17

? ethorz
26.07.2016
08:15:56

Михаил
26.07.2016
08:16:40
Общие где-нибудь в модуль/!/common.css
А на порядок плевать при использовании БЭМ, например.

Дмитрий
26.07.2016
08:16:50

Andrei
26.07.2016
08:17:41
Ок, всем спасибо за ответы

Михаил
26.07.2016
08:17:45
Не БЭМом единым, конечно, но он хорошо укладывается в "компонентный" подход, который сейчас везде в моде

? ethorz
26.07.2016
08:18:09

Дмитрий
26.07.2016
08:19:34

Andrei
26.07.2016
08:21:27

Anthony
26.07.2016
12:33:12
А конкретнее?
Тут случайно наткнулся на пример из ng-book2
В одном файле несколько компонентов
https://github.com/rmallols/ng-book2/tree/master/rxjs/chat/app/ts/components

Sergey
26.07.2016
12:35:21

Anthony
26.07.2016
12:35:39
А, ну так-то да

Sergey
26.07.2016
12:37:47
Ну так да, вопрос был в переиспользовании кода - твоего кода в классе - например с 2мя разными view. Сейчас нет нормального решения на сколько я знаю.

Anthony
26.07.2016
12:44:06
Я бы решал такое простым наследованием
ну то есть ты всю логику выносишь в родительский класс, а в дочерних просто прописываешь шаблоны

Sergey
26.07.2016
12:46:12
Наследование - это очень плохой путь
И это вкорне не отвечает задаче приложения - я так считаю