
Alexander
15.12.2016
10:59:57
merge не подойдет, нужен concat
ой, combine конечно
merge дает новый обсервабл в котором возникают события в очередности как в объединяемых
concat - закончился один observable, начинает потреблять следующий
combine - выдает уже новый обсервабл (mode, cerf)=>

Google

Пронин
15.12.2016
11:04:01
Observable.forkJoin подошел

Dmitry
15.12.2016
11:13:57
?

Vladimir
15.12.2016
11:42:50
@Ai_boy подскажи, есть ли какой-то аналог babel-plugin-import для TS'а?
Бандл весит неприлично много, при условии, что там очень мало либ используется

Sergey
15.12.2016
11:50:01
Например

Igor
15.12.2016
11:58:11
чет в статье дисклеймер, в итоге они вместо вебпак 2 юзают ролап

Sergey
15.12.2016
11:59:29
Да, нужно поправить )
https://github.com/blacksonic/typescript-webpack-tree-shaking
собственно ts -> es2015 -> babel

Vladimir
15.12.2016
12:25:18
tree shaking как-то очень не работает :D
без antd - 200кб. с - 1.34мб

Google

Dmitry
15.12.2016
12:33:27
посмотри еще другие техники
minify/uglify/gzip

Vladimir
15.12.2016
12:34:50
да вроде сейчас импорты вернулись в русло
и 227 кб
Да. Теперь норм.
Импорт {row,col} from 'antd/lib' оказался не таким выгодным, как import {Row} from 'antd/lib/grid/row'

Gleb
15.12.2016
14:47:08
Привет, компоненты в которых есть пагнация на сколько верно наследовать от базового абстракного компонента релизующим пагнацию? и на сколько верно делать компонент вроде mixin из других?

Dima
15.12.2016
14:48:38
ну ООП использовать в целом норм.

Gleb
15.12.2016
14:49:52
ну есть ли какой то разумный предел такой вот сборной солянки mixin
?
скажем нужна пагнация и какой нибудь список, я наследую от того и другого и в итоге кода почти нет
я просто думаю какие миинусы в этом

Dima
15.12.2016
15:00:04

Mikhail
15.12.2016
15:03:49
А есть какие то спец требования к hmr? типа какой версии анг должен быть?
А то у меня когда ws начинает рекомпилить падает ошибка что не может сбилдить

Алексей
15.12.2016
15:26:19

Mikhail
15.12.2016
15:28:15
Я с ViewScope не мурил - оставил как есть по дефолтку
zone ругается что не может вызвать метод host от undefined
когда уже diff кода приплыл

Gleb
15.12.2016
15:30:46
@Ai_boy Да действительно , спасибо

Google

Алексей
15.12.2016
15:32:18

Mikhail
15.12.2016
15:32:52
ок спасибо, проверю еще пару раз. Не, репы нету :)

Алексей
15.12.2016
15:36:44

Vadim
15.12.2016
17:34:55
Попробовал сегодня заюзать flex-grid от Angular. Впечатления двоякие.
С одной стороны, всё можно круто стилизовать как хочется. Всё будет адаптивно и в целом круто.
С другой - получается какой-то адовый набор html атрибутов, из-за которых template читать становится очень неудобно.
В итоге стили перекочуют в templates, из-за чего templates станут неподдерживаемыми.
В общем, я такое юзать не буду.

Akzhan
15.12.2016
18:41:57
кстати. кто вписывает кириллицу в скрпты es2017, вам наверняка не нужно замедление скорости и увеличение размера благодаря нововеяниям babel. ваши бенчи вэлкам тут - https://github.com/babel/babel/issues/4909

Mikhail
15.12.2016
18:51:08

Vadim
15.12.2016
18:52:36

Алексей
15.12.2016
19:33:52
Чат не перепутал?
Angular 2 можно писать на es2017 / babel - так что в некоторой степени - актуально

Korolll
15.12.2016
20:56:37
Ребят есть проблема. Принимаю данные из вебсокета в сегрвере создаю observable, а на компоненте слушаю. Проблемма в том, что слушатель может быть только 1 и данные идут к тому, кто последний подписался (а нужно разослать всем желающим) помогите пофиксить. Код следует.
`
private getSocket(url:string): Subject<MessageEvent> {
if(!this.socket) {
this.socket = this.create(url);
}
return this.socket;
}
private create(url): Subject<MessageEvent> {
let ws = new WebSocket(url);
let observable = Observable.create(
(obs: Observer<MessageEvent>) => {
ws.onmessage = obs.next.bind(obs);
ws.onerror = obs.error.bind(obs);
ws.onclose = obs.complete.bind(obs);
return ws.close.bind(ws);
}
);
let observer = {
next: (data: Object) => {
if (ws.readyState === WebSocket.OPEN) {
ws.send(JSON.stringify(data));
}
},
};
return Subject.create(observer, observable);
}


Gleb
16.12.2016
09:17:12
Привет, кто нибудь в сторонние либы передает которые требуют например готовую хтмл строку
@ViewChild('root')
public rootContainer: ElementRef;
По ссылке ElementRef
?

Sergey
16.12.2016
09:23:45
Вроде модальные окна хотят. Им нужно знать какой элемент root

Gleb
16.12.2016
09:42:02
Не совсем модалку, обычная модалка то просто как часть верстки, а тут тултипы от либы с карт
они ждут строку

Dmitry
16.12.2016
09:51:23
https://egghead.io/courses/use-higher-order-observables-in-rxjs-effectively

Eugene
16.12.2016
09:54:46
У меня что-то egghead не прогружается т.т

Mikhail
16.12.2016
12:17:28
Подскажите, а при HMR сам модуль на проде не отключают что ле?
Я подумал создал HRMModule, который должен оборачивать AppModule. а при проде соот-но не оборачивать. Надо ли это?

Google

Mikhail
16.12.2016
12:17:57
Возникают тёрки с bootstrap и декларациями если такое городить

Igor
16.12.2016
12:19:22
А ты сделай для прода и дева разные бутстрап файлы

Mikhail
16.12.2016
12:19:40
)) Ну вот хотелось избежать копипаста

Igor
16.12.2016
12:19:53
Так не копипаст
Наследуйся

Mikhail
16.12.2016
12:20:42
типа
class HmrModule extends AppModule ?

Igor
16.12.2016
12:20:57
Ага

Mikhail
16.12.2016
12:21:20
но в hmr будет указать тока один провайдер - AppState
не сломается?
Я представлял себе что надо бы как то AppModule.porviders.push(AppState) - псевдокод

Igor
16.12.2016
12:22:14
Не знаю, я просто предложил)
Попробуй, расскажешь потом

Vlad
16.12.2016
13:56:35
Здрасьте.
Предстоит работать со вторым Amgular'ом.
Бэк будет на Go.
Так что ждите вопросов по A2.

Gordon
16.12.2016
13:57:40
Всем привет
подскажите
есть вот такой код
<li (click)="selectThis(item.value, item.text)"
*ngFor="let item of options | ng2Filter: search">
{{ item.text|lang }}
</li>
при клике по элементам он срабатывает с 3 -5 раза
в компоненте стоит сразу после обьявления функции console.log


Дмитрий
16.12.2016
14:09:01
Всем привет!
Подскажите, пожалуйста, есть такой код на TS:
this.menuItems.then(function (items) {
let flag: boolean = false;
for (let i = 0; i < items.length; i++) {
items[i].getText().then(function (text) {
if (text === menuItemName) {
console.log(text);
flag = true;
console.log(flag);
}
});
console.log('=======================');
console.log('i: ' + i + ', flag: ' + flag);
console.log('=======================');
if (flag) break;
}
});
Проблема в том, что кусок:
console.log('=======================');
console.log('i: ' + i + ', flag: ' + flag);
console.log('=======================');
if (flag) break;выполняется до promise. Как сделать, чтобы они выполнились последовательно?

Google

Николай
16.12.2016
14:09:50

Gordon
16.12.2016
14:10:36
нет не стоит

Николай
16.12.2016
14:10:37
по промисам: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

Gordon
16.12.2016
14:10:40
я разобрался
проблема была не в этом
там есть у родителя функция потери фокуса она закрывала окно выбора - удаляя этот элемент
по которому кликал

Николай
16.12.2016
14:11:39
сложно )

Gordon
16.12.2016
14:11:56
и срабатывало раньше чем клик передавал значения

Дмитрий
16.12.2016
14:14:22
И для меня такое поведение кода странное
Эта группа больше не существует