pa[aad
скорее всего angularjs никакого отношения не имеет как перерисовывать слои
kdm🇩🇰
это да, но может кто использовал konva
upd: пожалуйста, не надо капитанить)
pa[aad
Dmitriy
ребят
Dmitriy
что вы скажете по поводу $emit
Dmitriy
$on
Иван
не самая хорошая практика
Sasha
Считается, что использование броадкастов - так себе идея
Dmitriy
а это тот же бродкаст ?
Иван
да, только в другую сторону
Иван
Rem1te
что вы скажете по поводу $emit
Плохо, не понятно поведение приложения, где-то кто-то что-то имитит
И на него где-то что-то кто-то делает
Очень запутанна архитектура
Sasha
Ну когда у тебя куча сервисов у компонентов в dependency injection - тож не айс, но вроде считается получше
Dmitriy
Rem1te
Rem1te
Что у тебя мол вот метод в одной сущности
Rem1te
вот метод в другой сущности
Rem1te
они друг от друга зависят
Rem1te
а так искать кто подписан на ккой ивент - сложно и запутанно
Rem1te
Но с другой стороны это упрощает расширения приложения
Rem1te
Но как по мне оно того не стоит
Sasha
Я сам не использую эвенты, просто у меня по-прежнему открыт вопрос по взаимодействию между компонентами
Sasha
И я вот думаю, если например какой-то компонент должен что-то триггернуть у другого, помимо стандартных инджектов сервисов, какие есть еще варианты? Насколько я знаю, во >2 ангулярах взаимдействие так же и организовано
Rem1te
Незнаю за ангуляр2 если честно, больше пишу на реакте и нгджс, но как мне кажется стучаться между сущностями без видимой связи это плохо : )
Dmitriy
Rem1te
Незнаю как все но мне больше нравится :)
Rem1te
Я считаю чем меньше магии в том чем я пользуюсь - тем лучше
Rem1te
в нгджс очень много магии
Sasha
Ну в реакте же этот вопрос взаимодействия между компонентами решен различными реализациями флакса
Rem1te
Ну да, просто в реакте как таковом нету своей системы реализации логики или взаимодействия, в конце концов это просто вью либа
Sasha
Мне просто система взаимодействия через сервисы не очень нравится с точки зрения архитектуры. Можно релакс к нгжс прикрутить так-то)
Sasha
Все равно, пока не удавалось достичь на фронте такого же уровня абстракции, как на бэкенде или десктопных приложениях
Rem1te
Конечно, это просто библиотека
Rem1te
https://blog.grossman.io/angular-1-using-redux-architecture/
Rem1te
Первая же ссылка в гугле
Rem1te
Кстати тут когда-то кто-то расказывал за редакс в нг-джс
Sasha
Да, я тоже читал это. Вот и подумываю
Sasha
А есть вообще какие-нибудь статьи/книги по общим принципам архитектуры? Потому что, как я и сказал выше, не удается достигнуть такого же уровня абстракции, как на бэкенде
Иван
как я уже когда-то и говорил: осталось только два православных варианта взаимодействия компонентов: находятся в прямой видимости - input/output; хрен пойми как будут расположены относительно друг друга - шаред сервис.
Иван
для тех кому не хочется думать - выбираем вариант с шаред сервисом, так как он больее универсален и подходит во всех случаях, но возможен оверхед
Rem1te
Rem1te
и мне кажется адекватного решения тут не будет
Rem1te
pa[aad
pa[aad
есть еще шина данных
Иван
в итоге как я уже и сказал, есть два православных метода общения компонентов: или через атрибуты, или через стэйт (в нативном ангуляре это шаред сервис)
pa[aad
Sasha
Подскажите плиз, почему при programmatically изменениях ng-model, не дергается $parsers и как можно это сделать?
Иван
Насколько я помню, парсеры и не должны дёргаться... Должны дёргаться форматтеры... При пользовательском вводе: вьюмодель -> парсер -> модель. Если ты меняешь модель программно: модель -> форматтер -> вьюмодель. И где-то рядом ещё есть валидаторы, не забывайте про них тоже.
Sasha
Да, я не верно сформулировал. Очень странный кейс просто: $formatters дергается(в нем парсинг из стринги во флоат) и возвращает правильное значение, но в итоге в ngModel, $viewValue/$modelValue - стринга
Sasha
Да и вроде из доки, форматтер не апдейтит саму модель
Oleg
всем привет
подскажите пожалуйста вдруг кто сталкивался с localeCompare
кейс: нужно сортировать name, чтобы первыми всегда были спец. символы, затем цифры, затем буквы.
сейчас так и реализовано, но, в примере я сделал 2 нейма: 'asdf' и 'ASDF'
так вот ловеркейс сейчас в приоритете.
вопрос: знает ли кто-то, кк сделать в этом примере апперкейс в приоритете над точно таким же именем в ловеркейсе?
http://fiddle.jshell.net/maslaw/vhhgh/53/
Sasha
В общем, кейс такой:
Есть виджет для numeric. В определенных условиях вызываются хуки, которые апдейтят модель напрямую. И бывает, что приходит стринга, нужно, чтобы в $modelValue был float.
Sasha
Помогло только записать в форматере:
ngModel.$modelValue = parseFloat(value, 10);
ngModel.$render();
Dmitriy
ребят снова я , подскажите пожалуйста
Dmitriy
есть родительский есть дочерний контроллер РК и ДК. в РК есть массив информации получаю из сервиса. Как болле правильно получить данные этого массива инжектить в ДК сервис и получать данные с сервиса или сделать что то такое вот в ДК let language = $scope.$parent.main_array;
Dmitriy
?
Rem1te
Дочернему компоненту прокиньте его как аттрибут
Rem1te
let language = $scope.$parent.main_array;
так плохо
Dmitriy
ну это не компоненты)
Dmitriy
по сути два контроллера
Dmitriy
у которых общий массив инфы
Sasha
Ну а может напрямую из сервиса? РК же берет
Sasha
$parent - так себе идея
Rem1te
Если просто прокинуть то можно и из сервиса, но если родительский компонент подифицирует эти данные - то надо прокидывать вниз
Dmitriy
проверил только что я в дочернем могу вобще вот так достуаться $scope.main_array )
Dmitriy
что логично так как скоп у них одинакв
Sasha
Rem1te
не факт
Rem1te
Dmitriy
не массив не модифицируется
Dmitriy
он есть по сути как константа ) , вопрос в том как правильно доставать его и откуда )
Dmitriy
агонь :)
я так понима надо скопы разделять ?)
Rem1te
Все зависит от конкретной ситуации
Rem1te
Если у Вас это не отдельные сущности то можно шарить один скоуп
Dmitriy
отдельные
Dmitriy
если отдельные то вязать сервисом?
Dmitriy
правильно ?