Serhii ✙
йоу чат! кто нибудь сталкивался с проблемой с ng-selected?
Serhii ✙
Serhii ✙
ни selected ни ng-selected не работают
Сергей
А ошибка какая?
Сергей
При загрузки пустой опшен появляется и вэлю с вопросами?
Сергей
Если да то можно сделать ng-options при указании value приведение к цифре например +(key) as...
Sērhīī
Это откуда, что за подробности?
Vit@Lik
Хлопцы, вы используете templateUrl?
Можно и template: require('./template.html') не обязательно templateUrl
Ilya 🃏
Юзай ng-options
Ilya 🃏
ни selected ни ng-selected не работают
Dmytro
пакуется как строка?
да, потом просто в template свойство ее
Alexey
кстати, может есть плагины какие для Sublime которые понимают как надо подсвечивать html шаблоны в строках ts? Я бы с удовольствием реже использовал templateUrl но большие шаблоны невозможно поддерживать когда они в строковом литерале.
Alexey
в JSX с этим получе
Denis
https://vsavkin.com/writing-angular-2-in-typescript-1fa77c78d8e8#.um5v5bhsm
Дмитрий
чат, вопрос. есть select, в котором ng-options группируются по сonfigured и на ng-change навешана функция profileChange() Есть три элемента в списке: w, x, y, z. я выбираю x, настраиваю, переключаю на элемент y - в функции profileChange() x.configured становится true. после выполнения функции в селекте становится выбран z, а не у, как я выбирал ранее. надеюсь, объяснил понятно) это можно как-то исправить ?
Igor
есть годная книга по angular 1.x?
Anonymous
есть годная книга по angular 1.x?
А зачем вам книги когда есть документация?
Igor
действительно
Igor
может книга раскроет больше инфы
Igor
чем оф. апи
Serhii ✙
библия ангулярщика
Igor
сенкс
Andrey
ng-book есть более новее чем 2013,
Andrey
по 1.3-1.5
Vit@Lik
недавно тут по ng2 кидали ссыль
Vit@Lik
если надо могу скинуть
Anthony
Все книги можно найти в разделе "Документы" этого чата
Anthony
Denys
Ребят, есть вопрос, как лучше всего делать связь между компонентами (допустим я в одном компоненте меняю параметры объекта чекбоксами, а во втором компоненте у меня кнопка, при нажатии на которую эти параметры заменяют параметры объекта)
Vit@Lik
ну тем более тогда :)
Vit@Lik
в ng2 для этого @Input() @Output() используется
Denys
Да, но компоненты соседние
Vit@Lik
значит через родительский
Denys
Т.е. мне нужно в родителя, а потом во второй?
Vit@Lik
да
Denys
А сервисом это реализовать как-то можно?
Vit@Lik
можно - глобальные евенты типа ))
Vit@Lik
это ж просто, издание / подписка
Vit@Lik
но, глобальные - это не хорошо
Denys
Ну, а сервисом, но не глобально. Подключить к двум компонентам и связать, так нельзя?
Дмитрий
повторюсь ещё раз, попробую сформулировать иначе) чат, есть селектлист, в нём несколько объектов, разделённых по признаку true/false. Я выбираю один, настраиваю, выбираю следующий - происходит сохранение предыдущего, и признак изменяется с false на true. А в селектлисте выбирается следующий объект (не тот, что я выбрал, а следующий!). Автоназначение выбранного элемента не помогает. Что можно сделать ещё? Как-то можно сделать так, чтобы angular не выбирал сам значения в селектлисте?
Denys
Просто как-то грязно выходит через родителя
Vit@Lik
можно, просто внутри сервиса синглтон будет, да можно как угодно)
Denys
А что такое синглтон😅?
Vit@Lik
ну почему, у Вас родитель хранит данные и пробрасывает через пропсы данные дочерним, хотите поменять данные делайте как аля в redux, евент пробрасывайте наверх для изменения стора
Vit@Lik
))) ну синглтон - это у Вас один объект создается, который шарит подписку, на observables
Vit@Lik
yfghbvth
Vit@Lik
например
Denys
Спасибо за ответ, нужно попробовать. А как лучше делать, через сервисы или перебрасывать через родителя?
Denys
Просто я сделал через родителя, но мне кажется это немного не чисто
Vit@Lik
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); }); } }
Vit@Lik
export interface IEventService { emit(data: IEmitData); subscribe(key: string, callback: (data: any)=>void); }
Vit@Lik
когда давно писал) вот - EventService ижектите в буутстрап
Vit@Lik
и все потом в компонентамх можете через emit({...}) инициировать событие а гдето подписаться на него subscribe({...}) просто по ключу
Vit@Lik
строковый ключ
Denys
Интересно, попробую) Спасибо
Denys
А есть работающий пример в опенсорсе?
Vit@Lik
не забывать главное отписываться когда компонент уничтожается
Denys
А это как?
Denys
Молодой еще😂
Vit@Lik
ну у ангулара же есть жизненные циклы компонентов, ngOnDestroy
Vit@Lik
например и там прописать unsubscribe
Vit@Lik
github.com/iwnow/ng2test
Vit@Lik
вот тут что то было у меня)
Vit@Lik
ng2test/app/source/browser/ts/services/
Vit@Lik
там как пример - изменение языка на сайте чере зэтот сервис, у всех компонентов подписка на событие изменения языка
Vit@Lik
и отписка есть соответсвенно
Vit@Lik
browser/ts/components/login.ts
Vit@Lik
например, ngOnInit() и ngOnDestroy() посмотрите
Bogdan
Котаны, есть какой-нибудь адекватный способ получения данных из дочерней компоненты? Ну они же вроде изолированы, все дела. У меня тут костыль такой, есть две компоненты, в родительской сорт оф враппер для сабмита формы, в нее подключается дочерняя с редактором текста. Проблема в том, что данные с дочерней держит в себе контроллер, постоянно подгружает через директиву на on change копаясь в ДОМе. Карочи, данные есть в переменной в контроллере, их надо оттуда получать в родительскую чтобы засабмитить форму, но я чет ниасилил как это сделать лучше, потому как вроде прямого обращения к дочерней или родительской компоненте не завезли (или завезли?)
Дима
А вообще у тебя двустороннее связывание есть
Igor
я не очень понял, обычные джейкверные методы в библиотеке нет?
Igor
у ангуляра 1
Igor
типа .find, .addClass
Дима
я не очень понял, обычные джейкверные методы в библиотеке нет?
Есть, но не все и с ограничениями (потому что это поперек идеологии ангуляра) jqLite называется
Дима
Работает через element в link спокойно, например