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

Страница 61 из 179
Lends
22.10.2016
22:37:14
https://www.nativescript.org/showcases

ты про WPA говоришь... но про NativeScript и ReactNative ты походу не слышал, но утверждаешь что нативных нет

Lends
22.10.2016
22:39:11
ты же только что говорил как

Google
Vlad
22.10.2016
22:39:33
это набор компонент для xaml

Lends
22.10.2016
22:39:48
о нет

Vlad
22.10.2016
22:39:56
тебе всеравно нужно писать на чемто нативном

Lends
22.10.2016
22:41:23
типа ангуляра? ?

нативное таки можно писать... если ты имеешь ввиду под "нативным" нечто иное и своебразное, это ничего не значит

Алексей
23.10.2016
00:29:57
нативного в любом случае не будет, все оно будет работать в браузере с красивой оберткой
NativeScript работает как нативное приложение и использует нативные компоненты. Но NativeScript ( как и ReactNative ) нельзя назвать нативными приложениями. Но нативные приложения можно писать на Angular2 для платформы Windows - там JS родной язык для Windows начиная с 8 версии :)

Ребят, как лучше использовать ang2 в связке с бекенд? Что бы они были отдельно т.е. работа через api, или вместе? #Новичок
Начинай с SPA - обычное приложение (начни с angular-cli) и работай через API - RESP/RPC неважно.

Ильнар
23.10.2016
04:42:13
Хорошо, спасибо

marat
23.10.2016
05:55:02
Всем привет, хочу создать глобальную переменную юзера, где юзер - авторизованный пользователь и таскать ее по всему проекту. Если я правильно понимаю, то мне нужен просто глобальный сервис, который я кидаю в провайдеры app.component-а ?
все сервисы и так глобальные, поэтому не глобальный сервис, а просто сервис. лучше засунуть его в провайдеры корневого модуля, а не в провайдеры компонента

Привет сообщество. Решил проект на ангуляре2 начать. До этого был реакт и анг1. Судя по статейкам angular cli отлично сочетает для начала всё что нужно, плюс rxjs, так как модно, реактивно и функционально. Но встал вопрос общения с сервером: есть ли тулзы, чтобы по 100 раз одни и те же данные не запрашивать? И если да: не будет ли конфликтов с таким стеком, а если нет, то как порекомендуете его написать?
для этого есть кеш браузера и лучше его использовать для статических файлов. если речь про апи, то get запросы также можно кешировать. если хочется именно хранить данные внутри приложения и не генерировать лишние запросы, то это можно решить и через promise и через observable.

Shoom
23.10.2016
09:47:05
+

Еще будет полезно почитать про ngrx

Google
Shoom
23.10.2016
09:49:12
https://github.com/ngrx/store

Хранить данные в сторах, а как кешировать - это уже простор для фантазии

Алексей
23.10.2016
11:07:41
Во-первых, неверный чат. Это чат по NG2. Во-вторых, за вакансии и резюме тут банят - для этого есть отдельный чат

Yuriy
23.10.2016
12:06:32
Парни, как сделать в Electron версикальный тач скролл (как в браузере на мобильном)?

Dima
23.10.2016
14:33:14
я с электроном не работал, но учитывая, что это вебкит, долен работать из коробки. Это ж браузер.

Tony
23.10.2016
16:13:18
в каком случае используется реакт, а в каких ангуляр?

Михаил
23.10.2016
16:15:02
Ребята, а что вы пишите для создания класса ? class или интерфейс?

Tony
23.10.2016
16:17:18
в чем разница

?

не понимаю

Михаил
23.10.2016
16:26:34
я столкнулся с тем, что когда пытаюсь написать нон-реквайред филд в класс, то получаю ошибку при создании объекта класса

andretshurotshka?❄️кде
23.10.2016
16:28:24
Shoom
23.10.2016
16:37:43
Класс и интерфейс это принципиально разные вещи

Nikita
23.10.2016
16:39:49
Я знаю еще один замечательный вопрос: Назовите хотя бы 3 отличия экземпляра объекта от инстанса

Igor
23.10.2016
16:48:49
я с электроном не работал, но учитывая, что это вебкит, долен работать из коробки. Это ж браузер.
Если я правильно понял, то тоже думаю так. Наверное какие-то проблемы со стилями.

Dima
23.10.2016
16:52:29
Ребята, а что вы пишите для создания класса ? class или интерфейс?
Если говорить в контексте ангуляра, то лучше всегда использовать классы, даже там, где можно было обойтись интерфейсом. Тайпскрипт их не добавляет в бандл и вебпак потом ругается, что нечего импортить. Где такое было даже оф доке описано

Алексей
23.10.2016
18:22:42
Ребят все вопросы про Types/Interfaces лучше переодресовать сюда @typescript_ru - быстрее помогут

в каком случае используется реакт, а в каких ангуляр?
Для того чтобы ответить на этот вопрос нужно хорошо знать Angular 2, React и саму задачу. Даже что-бы просто пофилосовствовать нужно хотябы знать что нужно сделать. В каких условиях, какой ресурс и т.п Но в кратце если проект писать с нуля рекомендую Angular 2, а если переписывать - то стоит подумать.

А вообще есть хороший набор видео о TypeScript https://egghead.io/courses/use-types-effectively-in-typescript

Google
Vadym
23.10.2016
20:17:31
Ребята, подскажите, пожалуйста, для чего нужен preloadingStrategy: PreloadAllModules? Суть же lazy load подгружать модули в тот момент когда они нужны, с этим свойством модули подгружаются сразу.

И как лучше реализовать индикатор загрузки можулей (loading)? При загрузки показать индикатор, а когда модуль подгрузился его спрятать!

Алексей
23.10.2016
20:26:42
Ребята, подскажите, пожалуйста, для чего нужен preloadingStrategy: PreloadAllModules? Суть же lazy load подгружать модули в тот момент когда они нужны, с этим свойством модули подгружаются сразу.
не сразу.. есть 3 сценария: 1) все грузим сразу 2) грузим только когда нужно 3) грузим только когда нужно и в фоне (незаметно) подгружаем все чтобы когда что-то стало нужно - оно "оп" и уже загружено (фактически будет выглядеть как будто LazyLoading и не включен)

И как лучше реализовать индикатор загрузки можулей (loading)? При загрузки показать индикатор, а когда модуль подгрузился его спрятать!
ну это стандартный подход, есть ряд оптимизаций но лучше конечно показать честный лоадинг

и включить preloadingStrategy: PreloadAllModules

Vadym
23.10.2016
20:32:31
Алексей, спасибо большое

Только с индикатором, не понял!

Как определить, подгрузился модуль уже или нет?

Чтобы когда подгрузился - спрятать индикатор!

Ostap
23.10.2016
20:46:13
+1. еще интересует подрузка данных из апи перед тем как отрисовать роут

Алексей
23.10.2016
20:53:05
Чтобы когда подгрузился - спрятать индикатор!
Ну тут несколько вариантов самый очевидный в компоненте (который грузиться лениво) в ngOnInit - послать событие и спрятать loading Если найду какой-то более элегантный способ - напишу

+1. еще интересует подрузка данных из апи перед тем как отрисовать роут
Для этого есть Resolvers https://angular.io/docs/ts/latest/api/router/index/Resolve-interface.html

Vadym
23.10.2016
20:58:10
Точно)

Спасибо за помощь ?

Vadim
23.10.2016
21:00:22
Я разбирал этот момент, ибо была подобная задача. Lifecycle hooks - самый правильный с точки зрения принципов Angular 2 способ

Алексей
23.10.2016
21:01:32
Я разбирал этот момент, ибо была подобная задача. Lifecycle hooks - самый правильный с точки зрения принципов Angular 2 способ
поверю на слово, у них просто в документации нет никаких эфентов на завершение подгрузки ленивого модуля - подумал может просто не описали.

Vadim
23.10.2016
21:01:39
Вопрос лишь в том, что именно делать при инициализации(или иного хука) модуля. Тут есть пространство для маневра, но его довольно мало.

Иного в доке я не находил

Google
Алексей
23.10.2016
21:03:15
Хуки на ленивых, вроде, также работают, как и на обычных.
не я думал в самом Routers можно что-то типо Resolvers или Guards повесить но только для ленивых модулей.

Ostap
23.10.2016
21:04:31
Спасибо

Алексей
23.10.2016
21:05:14
Спасибо
ошиблись с FW

Ostap
23.10.2016
21:05:46
Да :( не про юзверь телеграма

Vadim
23.10.2016
21:06:38
не я думал в самом Routers можно что-то типо Resolvers или Guards повесить но только для ленивых модулей.
Вот об этом я не подумал, но полагаю, что всё же это логичнее юзать именно в виде хука на компоненте.

Oleg
24.10.2016
06:57:29
Ребята, подскажите, пожалуйста, для чего нужен preloadingStrategy: PreloadAllModules? Суть же lazy load подгружать модули в тот момент когда они нужны, с этим свойством модули подгружаются сразу.
С презинтации Виктора Савкина могу сказать что на десктопе где инет нормальный можно например ставить чтоб все в фоне загрузились а на мобилке был только lazy

Alexey
24.10.2016
06:57:51
Привет всем, не подскажите момент. Есть кастомный сервис, в который импортится Http, от катомного сервиса я наследуюсь, вызываю его метод и Http undefined %)

Alexey
24.10.2016
07:02:35
да я код меняю щас со всех сторон) я правильно понимаю что для инициализации сервиса нужно его в конструктор передать? constructor(private http: Http) {}

Alexey
24.10.2016
07:05:34
вот тут тогда еще одна непонятность) я прокидываю через super(http) но все равно undefined. injectable конечно есть.

Oleg
24.10.2016
07:07:56
вот тут тогда еще одна непонятность) я прокидываю через super(http) но все равно undefined. injectable конечно есть.
помню уже подымали тут тему за extend http, жди гуру) я же чисто враппер сделал для http, тот враппер добавляет заголовки, а прочее но тот сервис не переопределяет родной http

Alexey
24.10.2016
07:11:11
ясно. ну я не от http наследаюсь, у меня есть сервис где этот http импортится и от него я наследую все другие сервисы, цель вобщем-то в том чтобы http был определен в одном месте и через него прогонялись все запросы.

Oleg
24.10.2016
07:12:24
Вот такой вышел, кажись тебе тоже такое нужно. Я через свой Myhttp все запросы прогоняю и все ок @Injectable() export class Myhttp { private readonly headers = new Headers({ 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest', 'Accept': 'application/json' }) private readonly getSettings = new RequestOptions({ headers: this.headers }) private readonly postSettings = new ResponseOptions({ headers: this.headers }) constructor(private http: Http) {} get(url: string) { return this.http.get(url, this.getSettings) .map(this.extractData) .catch(this.handleError) } post(url: string, body) { return this.http.post(url, this.stringify(body), this.postSettings) .map(this.extractData) .catch(this.handleError) } private extractData(res: Response) { let body = res.json() return body } private handleError(error: Error) { return Observable.throw(`Трапилась помилка, ${error}`) } private stringify(body) { return JSON.stringify(body) } }

Alexey
24.10.2016
07:14:58
ну вот у меня типа того) также пробрасываю http в конструктор, при экстенде передаю в супер, только при наследовании от такого класса http undefined

и вот тоже непонимаю, какой смысл такой абстракции если получается в супер нам нужно передавать http который опять же нужно импортить во всех наследниках %)

Oleg
24.10.2016
07:19:19
Так вы от него наследуетесь? а можно посмотреть как?)
После в любом другом сервисе который хочет работать по api делаю import { Myhttp as Http } from './HttpHelper.service' export class AuthService { constructor(private http: Http) {} session(): Observable<ISession> { return this.http.get(this._urls.session) }

Alexey
24.10.2016
07:20:44
а, вы получается подменяете стандартный http, а я пытаюсь экстендится

Google
Oleg
24.10.2016
07:22:36
а можно узнать зачем нужно? когда это обсуждали то там был какой то частный случай, в который я так и не вникал

angular-cli при билде минифает html?

Alexey
24.10.2016
07:28:57
ну идея простая: есть базовый класс BaseOperation, через него прогоняются все api операции через http сервис, устанавливаются заголовки и пр, и мне кажется логичным наследоватся от него в других сервисах, которые работают с api. смысл в том чтобы определить этот http в одном месте. но раз приходится в супер их передавать то я щас не очень вижу в этом смысл.

Oleg
24.10.2016
07:31:10
я ту же проблему решил но как видешь по простому, и как по мне очень удобно

Alexey
24.10.2016
07:39:38
хм, самое забавное что сделал так же щас, все равно undefined(

Пронин
24.10.2016
07:40:50
> Oleg я ту же проблему решил спасибо, попробую с свой проект это добавить :)

marat
24.10.2016
07:50:12
а httpmodule в импортах есть?

Vadym
24.10.2016
08:34:43
С презинтации Виктора Савкина могу сказать что на десктопе где инет нормальный можно например ставить чтоб все в фоне загрузились а на мобилке был только lazy
А оно случайно не само определяет скорость интернета? Например если моб интернет то в фоне не подгружает.

Oleg
24.10.2016
08:37:15
А оно случайно не само определяет скорость интернета? Например если моб интернет то в фоне не подгружает.
Ангуляр? невидел такого я просту дал пример когда можно переключать на lazy)

чёт webpack нифига не tree-shaking lodash :(

Denis
24.10.2016
08:56:41
Попробуй import foreach from 'lodash/foreach'; (ну или любое другое название функции)

Тогда он отдельно одну функцию заберёт без подтягивания всей либы

Oleg
24.10.2016
09:06:43
Попробуй import foreach from 'lodash/foreach'; (ну или любое другое название функции)
так и делал, но без толку. И так и сяк делаю импорт, в итоге в чанках весь лодаш в двух чанках он заимпортил весь лодаш а в третьем он подтянул без всего лодаша только нужную ф-ю. Хотя импорт что там что там делаю нормальный.

Алексей
24.10.2016
09:07:22
чёт webpack нифига не tree-shaking lodash :(
https://medium.com/making-internets/why-using-chain-is-a-mistake-9bc1f80d51ba import map from "lodash/fp/map"; import flatten from "lodash/fp/flatten"; import sortBy from "lodash/fp/sortBy"; import flow from "lodash/fp/flow"; flow( map(x => [x, x*2]), flatten, sortBy(x => x) )([1,2,3]);

Oleg
24.10.2016
09:08:02
Еще есть беда по ng-prime подключаешь аккордион а в итоге тянеться вся либа и так тоже в 2х чанках, уж ладно в одном так а второй пусть тянет с первого

Denis
24.10.2016
09:10:56
А вот с чанками не подскажу. У самого проблема: у меня вебпак все (и нужное, и ненужное) сует в common, тянет кучу зависимостей, хотя очевидно, что некоторые к общим не относятся. Нужно почитать доку по чанкам, но я пока не могу посвятить этому время. Если чанки отключишь, соберётся нормально?

Oleg
24.10.2016
09:16:05
А вот с чанками не подскажу. У самого проблема: у меня вебпак все (и нужное, и ненужное) сует в common, тянет кучу зависимостей, хотя очевидно, что некоторые к общим не относятся. Нужно почитать доку по чанкам, но я пока не могу посвятить этому время. Если чанки отключишь, соберётся нормально?
ой чтоб такое чекнуть нужно весь проект перелопатить, потому что те чанки -> lazy роуты почему тогда в одном из них загрузил только одну мне нужную фю а в остальные два весь lodash пробовал подключить lodash-es но typescript ругаеться что нету такого модуля

Denis
24.10.2016
09:16:19
Ясно :) Масштабы уже не позволяют

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

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