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

Страница 41 из 179
Sergey
28.09.2016
13:27:00
Тогда круто

Просто в другом чатике кто-то писал, что сам пример не работает на релизной версии

Alexey
28.09.2016
13:33:55
я не копировал весь пример, только часть с providers: []

и выпилил хак

Google
Vladimir
28.09.2016
14:00:30
А вот с архитектурной точки зрения, лучше storage сделать статическим классом или передавать через di?

Алексей
28.09.2016
14:07:55
Sergey
28.09.2016
14:14:28
Наверное как добавить в cli - тогда просто склонить реп cli и сделать npm link

Oleg
28.09.2016
14:24:21
кто работал из [DomSanitizer](https://angular.io/docs/ts/latest/api/platform-browser/index/DomSanitizer-class.html) одно дело когда нужно сказать этот iframe нормальный, можешь вставлять - в одном компоненте но когда их уже 3 или больше и отрабатывать еще стили и тд как то DRY есть вариант чтоб в app.modules для всех задать глобально вот доверенный урл и все что от него приходит можно парсить и не бояться

Oleg
28.09.2016
14:30:31
ну вот в админке создал новость, там прикрепил картинку и добавил текста по апи получил список новостей и посторил их картинку показало но к ней прилагались стили как например размер а ангуляр вырезает их, и в итоге картинка не в том размере такое уже делал из iframe перед тем как стоил дум я проганял через DomSanitizer каждый кусок html (iframe) и лишь после того кидал в переменную через которую уже ngfor делал

+ все это делао приходится вставлять вот так <div [innerHTML]=news.description></div> innerHTML потому что приходит мне часть разметки html если сделать через {{}} то вставится как текст

andretshurotshka?❄️кде
28.09.2016
14:46:11
Как экстендить RouterOutlet?

Sergey
28.09.2016
14:48:34
Забирайте книгу сегодня бесплатно https://leanpub.com/router/c/connect

Igor
28.09.2016
14:50:59
книга свежая?

а то я некоторые ответы только в его блоге находил

Sergey
28.09.2016
14:56:50
Книгу он закончил может пару недель тому назад, так что свежее не бывает

Google
Sergey
28.09.2016
14:57:57
Там вроде нет preloading, но он вообще вот только в beta попал пару дней назад

Слайды с его же доклада https://docs.google.com/presentation/d/1kp7sbxcEpTaOEgW95RHMFMxsihGdk-8Nlug62PDjgFw/edit#slide=id.g1721703982_0_771

Igor
28.09.2016
15:06:22
ага увидел что 23 сентября

спасибо за линк! оч круто

Lends
28.09.2016
15:17:31
кому влома на сайт заходить)

Sergey
28.09.2016
15:27:31
Ну это лучше убрать. Потому как книга все же платная по факту. Тут уже это обсуждалось.

Ну или убрать позже

Lends
28.09.2016
15:28:06
ну ок-ок)

Алексей
28.09.2016
23:52:25
Ну и для тех кто второй день подряд игнорирует Angular Connect - видео с двух потоков и Keynote c предыдущего дня! ( он не вошел в запись ) https://www.youtube.com/watch?v=xQdV7q3e_2w Track One https://www.youtube.com/watch?v=HVz9CYTSFek Track Two https://www.youtube.com/watch?v=KekdTN2IkZg

andretshurotshka?❄️кде
29.09.2016
02:04:45
Как экстендить RouterOutlet?
А, надо guards использовать, да

Oleg
29.09.2016
07:31:29
https://angular.io/docs/ts/latest/guide/security.html Content-Security-Policy Верно понял что если добавить этот заголовок то не нужно будет запускать DomSanitizer

Алексей
29.09.2016
07:34:04
А, надо guards использовать, да
в 99.9% да.. а какой кейс?

https://angular.io/docs/ts/latest/guide/security.html Content-Security-Policy Верно понял что если добавить этот заголовок то не нужно будет запускать DomSanitizer
Нет - CSP защищает лишь от определенного набора векторов атак. Он так-же помогает защититься от определенной части XSS уезвимостей - но не от всех Так-же CSP чтобы работать нужна поддержка в браузере - а она пока пичальная ( особенно для CSP v2 ) http://caniuse.com/#search=csp

Oleg
29.09.2016
07:40:35
в 99.9% да.. а какой кейс?
есть идеи как тогда сказать что вот по таким урлам можна доверять? или хотя бы глобально отлючить эту защиту

Алексей
29.09.2016
07:44:54
есть идеи как тогда сказать что вот по таким урлам можна доверять? или хотя бы глобально отлючить эту защиту
отключать защиту и доверять всем урлам плохая идея. очень Но если сильно нужно можно делать вот так <img class='photo-img' [hidden]="!showPhoto1" [src]='sanitizer.bypassSecurityTrustUrl(theMediaItem.photoURL1)'> или вот так this.media['safeURL'] = this.sanitizer.bypassSecurityTrustUrl(this.media.VideoURL); <iframe [src]='media.safeURL' ...

Oleg
29.09.2016
07:46:29
ну например хотя бы задать для такого урла а все другие пусть проверяет /api/**

Алексей
29.09.2016
08:02:05
ну например хотя бы задать для такого урла а все другие пусть проверяет /api/**
можно пример шаблона который хотите показать? пока непонятно почему пример приведенный выше вам не подходит

Oleg
29.09.2016
08:11:24
Вот пример сервиса, их много и для каждого свой /api/url Можна например в каждом сервисе сделать так this.safe.bypassSecurityTrustUrl(this.benefits_url)Или что то в этом духе А в компоненте уже получаю результат из сервиса который "помечен" как защищен и без костылей вставлять контент @Injectable() export class BenefitsService { readonly benefits_url = '/api/benefits' constructor(private http: Http, private safe: DomSanitizer) { } getAll(): Observable<IBenefits> { return this.http.get(this.benefits_url) } get(slug: string): Observable<IBenefit> { return this.http.get(`${this.benefits_url}/${slug}`) } }

Алексей
29.09.2016
08:12:21
// This seems to work to disable the sanitizer (i.e. you know all inputs are safe): import { Injectable, provide } from '@angular/core'; import { DomSanitization, SecurityContext } from '@angular/platform-browser'; @Injectable() export class NoSanitization { sanitize(ctx: SecurityContext, value: any): string { return value; } } export const NO_SANITIZATION_PROVIDERS: any[] = [ provide(DomSanitization, { useClass: NoSanitization }), ]; // Then import and add NO_SANITIZATION_PROVIDERS to bootstrap. Это правда выключит все ( но можно поиграться и сделать данный вариант чуть секюрнее )

Google
Oleg
29.09.2016
08:24:23
Зараз это так решаю ngOnInit() { this.sub = this.StreamsService.getAll().subscribe(result => { result.items.forEach((stream, index, streams_arr) => { streams_arr[index].code_stream = this.DomSanitizer.bypassSecurityTrustHtml(stream.code_stream) this.streams = streams_arr }) }) }в code_stream лежит разметка iframe перебираю и помечаю это поле и потом можна вставлять в темлпейт А хотелось бы еще на уровне сервиса пометить тот урл по которому он будет фетчить данные и все что он получит уже safe и в компоненте не прийдется делать перебор

Y
29.09.2016
08:38:21
Всем привет. Вопрос к тем, кто знаком с OData v4. Есть ли библиотеки, которые позволяют формировать запросы в соответствии с этим протоколом? Т.е. меня конкретно интересует автоматическое создание сервисов в соответствии с описанием в metadata. Если не совсем понятно - приведу аналогию. Есть Swagger; это по сути спецификация к REST. Есть целый набор библиотек, которые пожирая эту спецификацию формируют набор сервисов с готовыми запросами. Вот я ищу примерно такую же вещь, только для протокола OData и под Angular 2.

Vadim
29.09.2016
11:10:00
Ребят, каким образом можноустановить значение поля в model-driven form уже после того, как она была инициализирована?

Vadim
29.09.2016
11:12:37
Вот не смог пока достверный синтаксис нагуглить.

Igor
29.09.2016
11:15:28
Вот не смог пока достверный синтаксис нагуглить.
fullUpdate() { this.form.patchValue({firstName: 'Partial', password: 'monkey'}); } partialUpdate() { this.form.patchValue({firstName: 'Partial'}); }

Vadim
29.09.2016
11:17:04
Спасибо.

Igor
29.09.2016
11:18:55
нашел вот тут, если что http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/

Sergey
29.09.2016
11:19:53
Так а что искать, если все есть просто в автодополнении!?

Vladimir
29.09.2016
11:20:13
можно из темплейта как-то получить доступ к статическому классу?

Igor
29.09.2016
11:20:19
Так а что искать, если все есть просто в автодополнении!?
ну я сначала читал про формы, а потом пробовал :)

Vladimir
29.09.2016
11:20:21
точнее к статическому филду у класса

Sergey
29.09.2016
11:22:15
точнее к статическому филду у класса
Ну если класс добавлен в проперти компонента

Мы говорим про отдельный класс или это компонент?

Oleg
29.09.2016
12:38:37
Всем привет The page at '.../posts' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint '..../api/1.0/posts/'. This request has been blocked; the content must be served over HTTPS.

Кто-то сталкивался с такой проблемой? Прочитал что нужно еще настройки передавать с гетом, но найти не могу

getPosts(): Promise< Post[] > { //return Promise.resolve(POSTS); return this.http.get(this.postUrl) .toPromise() .then( response => response.json() as Post[] ) .catch(this.handleError); };

Все, это я затупил

postUrl прописал с http

Google
Alexey
29.09.2016
13:02:29
Делюсь своими впечатлениями после первой попытки покрыть тестами UI компоненты - ng2 тут торт. Отличные встроенные инструменты для тестирования, модульность и DI упрощают написание тестов невероятно, UI элементарно тестируется unit тестами покрывая все браузерные взаимодействия пользователя. Я прям доволен в общем.

THE
29.09.2016
13:07:20
Добрый вечер...

Посоветуйте книгу по ангуляру или сайт

Понимаю англ и рус...

THE
29.09.2016
13:10:42
Благодарю

andretshurotshka?❄️кде
29.09.2016
13:22:12
в 99.9% да.. а какой кейс?
аутентификация, я еще с новым роутером просто не пробовал, но нашел тут про auth.guard

Alexey
29.09.2016
13:26:27
По какой доке-статье все это делал? Или все сам?
В новой доке все здорово описано - https://angular.io/docs/ts/latest/guide/testing.html

уже после посмотрел доклад с angular connect по тестированию и по сути не узнал ничего нового

все в доке есть

единственный неочевидный момент был с тем как из UI сымитировать заполнение инпута

el.value = newValue el.dispatchEvent(new Event('input'))

el: HTMLElement

в доке этого нет

т.е можно конечно через conponentInstance поменять проперти которое на [(ngModel)] биндится, но хочется имеено UI протестировать как реальный пользователь в браузере

Sergey
29.09.2016
13:40:07
?

Vladimir
29.09.2016
19:10:35
внимание, вопрос! Ангуляр делает redraw дива, если изменился параметр или просто его обновляет?

т.е. у меня у дива [style.top]="item.x", при изменении x он просто стиль поменяет или отрисует заного?

Vadim
29.09.2016
23:04:17
Хороший вопрос

Google
Vadim
29.09.2016
23:05:23
Скорее всего, отрисует заново, но прямой пруф дать не смогу.

Alexey
30.09.2016
04:54:59
Стиль поменяет конечно, только надо не забыть указывать юниты [style.top]="item.x + 'px'"

Хотя что ты подразумеваешь под redraw, если браузерный repaint то да, он произойдет. Если имеешь в виду что в доме произойдет замена дива на новый то нет, div останется тот же.

Компилятор ангуляра из шаблона генерирует js код в котором будет выражение вида div_el.style.top = context.item.x + 'px';

А с AOT компилятором будет сгенерен TS и при компиляции TS ещё и проверит все эти выражение

На типы и вообще есть ли в компоненте item.x

Будет что-то типа let context: MyComponent

Если я правильно понял из доки то изменять Dom структуру динамически, создавать/удалять ноды могут только директивы с префиксом * - например *ngFor, *ngIf

Vladimir
30.09.2016
08:25:41
А в ангуляре в темплейтах есть простой loop от 1 до n?

Lends
30.09.2016
08:26:24
+1 к вопросу... пока нашёл только костыли... конечно можно директивку запилить... но всё равно велосипед

Sergey
30.09.2016
08:30:57
http://stackoverflow.com/questions/36354325/angular-2-ngfor-using-numbers-instead-collections

Lends
30.09.2016
08:33:26
самая большая энциклопедия костылей, спасибо)

Igor
30.09.2016
08:36:16
кстати, что лучше внутри *ngFor юзать, #i или let i?

Lends
30.09.2016
08:38:44
https://angular.io/styleguide

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

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