
Maksim
03.08.2016
21:34:47
Они могут хранится где угодно внутри src, на работоспособность это не повлияет

Sergey
03.08.2016
21:35:55
Я сходу просто не нашел информации но видел пример что в эту папку скидывают общие данные для проекта. Спасибо Максим, много полезного подчерпнул, вопросы может и детские но это мой первый js фреймворк )

Maksim
03.08.2016
21:36:54
Смешно, но мой тоже :)
https://angular.io/styleguide#!#04-01

Google

Sergey
03.08.2016
21:36:59
Ага как раз в стайлгайде и находил эту информацию.

Maksim
03.08.2016
21:37:03
Вот тут про структуру

Andrew
04.08.2016
10:26:40


Dmitry
04.08.2016
10:57:54
Всем привет, в VS code завезли autoimport?

Алексей
04.08.2016
11:01:33
Пока в виде плагина
https://marketplace.visualstudio.com/items?itemName=steoates.autoimport

Dmitry
04.08.2016
11:04:12
чудно, спасибо большое
с ходу не заводится, но хорошо, что улучшают поддержку
кстати, может у кого-нибудь есть туториал как правильно настраивать tsconfig прям от и до, а то постоянно такое чувство, что что-то упускаю

Andrey
04.08.2016
11:10:42

Алексей
04.08.2016
11:12:31
скопипасть из angular cli и меняй по необходимости
http://techiejs.com/Blog/Post/Leveraging-tsconfigjson-in-TypeScript-projects
а так - информации увы очень мало - вообще tsconfig.json это обертка для опций компилятора
https://www.typescriptlang.org/docs/handbook/compiler-options.html
Ну и можешь спросить в группе по TypeScript
https://telegram.me/typescriptru

Maksim
04.08.2016
11:22:23
Такой вопрос
Вот есть у меня сервис данных, все через observable

Google

Maksim
04.08.2016
11:23:13
При запросе делается next
Но сейчас понадобилось вернуть только один объект
Как кто это делает?
Вариантов много, интересны ваши
И почему именно так

Алексей
04.08.2016
11:25:04
я видел вот такой способ -
this.some.toPromise().then()

Maksim
04.08.2016
11:25:25
Вариант подписываться на все данные и фильтровать - странно имхо

Алексей
04.08.2016
11:26:53
А более правильным будет
this.some.subscribe((nextValue) => {
// usefull job here
this.some.unsubscribe();
});
и помоему можно еще вот так делать ( я правда не проверял )
let subscribtion = this.some.subscribe((nextValue) => {
// usefull job here
subscribtion.unsubscribe();
});

Andrew
04.08.2016
11:29:43

Sergey
04.08.2016
11:29:57
А что ты для хранения в сервисе используешь?

Andrew
04.08.2016
11:29:57
Вы же так делали)
Интересно, код на глазах появляется )) извиняюсь

Алексей
04.08.2016
11:30:35

Andrew
04.08.2016
11:30:51
тут еще изменять можно?)

Sergey
04.08.2016
11:31:12
это да, можно

Maksim
04.08.2016
11:31:33
Я видимо криво выразился.
У меня в сервисе все данные пихаются в next при запросе с сервера.
Есть метод load all - это понятно. Но есть метод load, он подгружает один элемент и проталкивает его в общий массив. Далее этот массив опять же проталкивается в next
На деле там на массив а самописный контейнер данных, но это лишние детали, для простоты - массив
Сейчас появилась задача выдавать только один элемент
Есть вариант слушать общий обсервер и фильтровать приходящие данные, но это мне не нравится

Google

Sergey
04.08.2016
11:33:32
next над каким классом? Subject например

Maksim
04.08.2016
11:34:01
Например subject

Sergey
04.08.2016
11:34:15
toObservable().take(1)
будет отдан всегда один и закрыт

Maksim
04.08.2016
11:34:36
Вопрос не о реализации, а о том как кто реализует реактивные сервисы
Нужен не первый, а запрошенный
Запрашивает с сервера объект с конкретным ид
И нужно его получить

Sergey
04.08.2016
11:35:27
а дальше?

Maksim
04.08.2016
11:36:28
Но при этом он должен также попасть в массив всех данных, и этот массив должен быть отправлен в общий обсервер, чтобы не рушить парадигму

Sergey
04.08.2016
11:36:30
Ну просто не очень ясно, там же ты можешь сделать без subscribe, и отдавать фильтрацию
Ох. Ну есть do() - вот тут можешь ловить данные

Maksim
04.08.2016
11:37:12
Тяжело с телефона писать адекватно и развернуто, понимаю что меня сложно сейчас понять

Sergey
04.08.2016
11:37:32
Ну это сервис запросов, а не синглтон с данными?

Maksim
04.08.2016
11:38:04
Да

Sergey
04.08.2016
11:38:20
Тогда он наружу отдает Observable
И перед передачей во вне, накладывает вот эти take, map и прочее
Я бы так делал
И кому нужны данные, уже делают subscription
вот тут можно развернуто спросить

Google

Sergey
04.08.2016
11:40:07
https://gitter.im/dev-ua/FP-FRP

Алексей
04.08.2016
11:40:48
делаем observable на 1 элемент - отдаем наружу но в do() складываем эти элементы в массив сервиса - массив можно забрать уже из метода сервиса
win win

Sergey
04.08.2016
11:42:07
Если тебе нужно где-то кэширование на этом этапе, а не напрямую запрос слать. То вот можно использовать внутри сервиса прослойку из subject, в который данные писать, если они у тебя уже есть и отдавать снова toObservable(). А если данные будут позже, то дослать их next()


Maksim
04.08.2016
11:42:48
Короче.
Есть сервис который оперирует одним объектом базы данных
У него есть методы - LoadAll(), Load(), Delete(), Update(), Create()
Этот метод имеет один публичный обсервер - result$. После любой операции с данными туда должен приходить массив актуальных данных.
Это реактивность, это логично.
Но сейчас мне нужно в одном конкретном месте получить один объект с конкретным ID. Текущая логика функции Load такова, что она получает с сервера объект под ID,
записывает его в контейнер данных (массив для простоты понимания), далее этот массив отправляется в result$.next()
Вариант как делают почти все - слушают $result и фильтруют пришедшие данные по ID. Мне это не нравится - зачем? Я знаю конкретный объект, я знаю что мне нужно, я его уже получил. Зачем мне еще раз его искать, лишняя нагрузка и вообще бред. Вот я и ищу вариант вернуть 1 эллемент, при этом н ломая парадигму реактивности, чтобы данные как и раньше везде обновлялись когда делаю load.


Sergey
04.08.2016
11:45:02
Ну вот я тебе и описал. result$ вернуть. А что туда положить - это твой мидлвар - есть значение, тогда его. Нет - запрос сервера, тут subscribe и в result$

Maksim
04.08.2016
11:46:03
Тогда result будет в разных ситуациях возвращать разные данные. Это не верный подход

Sergey
04.08.2016
11:46:21
Почему разные?
типа миссив или объект?

Maksim
04.08.2016
11:46:37
Да
Это же нарушает главную фишку

Sergey
04.08.2016
11:46:55
Ну так, тогда тебе нужен еще один метод

Maksim
04.08.2016
11:46:56
Что я в 10 компонентах подписался, и везде юзаю
Вернее в 1 месте меняю
И везде меняется

Sergey
04.08.2016
11:47:39
ну ты сеяас хочешь в CollectionApi положить ObjectApi
Это неверно конечно

Maksim
04.08.2016
11:47:51
Вот
Я и спрашиваю кто бы как это разрулил
Потому что сам понимаю что это тупо

Sergey
04.08.2016
11:48:16
Это должен быть отдельный сервис со своими типами на вход и выход

Google

Sergey
04.08.2016
11:48:41
И как он внутри хитро устроен - это вон выше - про кэширование
Пусть ты будешь в отдельном сервисе хранить пул объектов с запросов колекций, а объект в них искать, а если нет довапрашивать
Там можно и дженерик применить, передавать тип нужного объекта

Maksim
04.08.2016
11:50:41
Ну у меня сейчас это решает класс - контейнер. Он хранит в себе, заменяет, обновляет

Andrew
04.08.2016
11:50:51
Оффтоп,
Есть сервис по генерации имен сущностей на основе рукописного ввода предложения в одно легкочитаемое, удобное имя латиницей с camelCase, содержащим весь исходный смысл..

Maksim
04.08.2016
11:50:54
Так оно и есть собственно

Andrew
04.08.2016
11:50:59
Вопрос риторический

Maksim
04.08.2016
11:51:04
С дженкрикос

Sergey
04.08.2016
11:51:23
Так что тебя не устраивает? )
Вон рядом поставь ObjectApi и юзай или этот контейнер, или CollectionApi
Потому что да, с возращаемыми типами просто так не разберешься. Либо новый метод, либо новый класс нужен

Maksim
04.08.2016
11:53:10
Надо его зашарить между двумя сервисами

Sergey
04.08.2016
11:53:30
Ну да

Maksim
04.08.2016
11:55:21
Ну это ладно...
Так, а как можно после подписки выкинуть тот же обсервер?
Типа return obs.subscribe(..)
Чтобы потом на это можно было сделать еще subscribe
А, это меня плавит уже
Я понял, все ок. Спасибо

Sergey
04.08.2016
11:59:30
На один обсервер - один сабскрипш )
это как lazy, пока нет subscription, ничего не выполняетс
Эта группа больше не существует