𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Использование прямых потомков через > больше не работает в ангуляре!!!! Это почти что табу )) внегласно, если ты используешь компоненты!!!
ладно фиг с потомками, не велика цена. У меня есть конкретный юзкейс: grid/flexbox css свойство order или template-area будут применяться к элементам, если они лежат в компоненте? самому проверять лень
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
@ngSamurai хєлп( вытащил данные юзера из рутскоупа в отдельный factory UserDetailsService, там прописал методы fetchUserDetails, getUserDetails. вызвал fetch в app.js .run( тут) а в компонентах, где то этого данные читались из rootScope переделал чтоб читались из userDetails через DI. В итоге запросы на фетч отправляются, в сервисе данные меняются, а компоненты, который этот сервис читают никак на изменения не реагируют( какую задачу я пытаюсь решить: я хочу, чтоб мои данные лежали централизованно в отдельном сервисе, при этом чтоб инициализация этих данных происходила централизованно где-то в корне проекта и при этом чтоб компоненты, которые это читают слышали апдейт этих данных, желательно без броадкаста и без $watch. заметил что раньше когда данные фетчились прямо в контроллере у меня после этого вызывалось $rootScope.$apply(); $scope.$apply(); но как я сделаю $scope.apply, если я не знаю когда данные зафетчились
Rem1te
@ngSamurai хєлп( вытащил данные юзера из рутскоупа в отдельный factory UserDetailsService, там прописал методы fetchUserDetails, getUserDetails. вызвал fetch в app.js .run( тут) а в компонентах, где то этого данные читались из rootScope переделал чтоб читались из userDetails через DI. В итоге запросы на фетч отправляются, в сервисе данные меняются, а компоненты, который этот сервис читают никак на изменения не реагируют( какую задачу я пытаюсь решить: я хочу, чтоб мои данные лежали централизованно в отдельном сервисе, при этом чтоб инициализация этих данных происходила централизованно где-то в корне проекта и при этом чтоб компоненты, которые это читают слышали апдейт этих данных, желательно без броадкаста и без $watch. заметил что раньше когда данные фетчились прямо в контроллере у меня после этого вызывалось $rootScope.$apply(); $scope.$apply(); но как я сделаю $scope.apply, если я не знаю когда данные зафетчились
эх щас бы rxjs а не вот это вот всё :))
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
эх щас бы rxjs а не вот это вот всё :))
Та ты шо гонишь какой рх Я тут утону если его ещё добавлю
Rem1te
ну ты можешь написать у своего сервиса метод онЧенжс передавать в него хендлеры, собирать хендлеры в массив, а когда данные меняются то вызывать этот массив подписчиков в сервисе и таким образом оповещать все свои активные компоненты о том что данные изменились
🎋🎋🥷 ngSamurai
Rem1te
ну и вызывать в компонентах Аплай
Rem1te
но тут такое вопрос, а у тебя данные юзера меняются по ходу приложения?
Rem1te
Йоу, так есть же )))
ну тогда вообще нет проблем :))
🎋🎋🥷 ngSamurai
@ngSamurai хєлп( вытащил данные юзера из рутскоупа в отдельный factory UserDetailsService, там прописал методы fetchUserDetails, getUserDetails. вызвал fetch в app.js .run( тут) а в компонентах, где то этого данные читались из rootScope переделал чтоб читались из userDetails через DI. В итоге запросы на фетч отправляются, в сервисе данные меняются, а компоненты, который этот сервис читают никак на изменения не реагируют( какую задачу я пытаюсь решить: я хочу, чтоб мои данные лежали централизованно в отдельном сервисе, при этом чтоб инициализация этих данных происходила централизованно где-то в корне проекта и при этом чтоб компоненты, которые это читают слышали апдейт этих данных, желательно без броадкаста и без $watch. заметил что раньше когда данные фетчились прямо в контроллере у меня после этого вызывалось $rootScope.$apply(); $scope.$apply(); но как я сделаю $scope.apply, если я не знаю когда данные зафетчились
Не, он зе флай ты хрен данные получишь ))) только через апплай или дигест
🎋🎋🥷 ngSamurai
ну тогда вообще нет проблем :))
Ссорян, спутал с нгрх)
🎋🎋🥷 ngSamurai
Rem1te
Ссорян, спутал с нгрх)
а он же под капотом ирксжс тащит же :)
🎋🎋🥷 ngSamurai
а он же под капотом ирксжс тащит же :)
Не.... Там колхозный пак на нгрх и редакс))))
🎋🎋🥷 ngSamurai
Но я свой писал стор менеджер...
🎋🎋🥷 ngSamurai
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
но тут такое вопрос, а у тебя данные юзера меняются по ходу приложения?
Да Например баланс кредитов, он может что-то потратить или пополнить счёт
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Rem1te
Не.... Там колхозный пак на нгрх и редакс))))
а я смотрю вы тут любите всякие извращения :))
🎋🎋🥷 ngSamurai
Rem1te
Да Например баланс кредитов, он может что-то потратить или пополнить счёт
тогда самый красивый способ решения это с добавления списка хендлеров которые оповещать об изменениях
Rem1te
ага он самій
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
ага он самій
Просто это тоже фигня А вшитое слишком накрученное Этот вотч блин Он меня уже выбесил в другом компоненте
Rem1te
ну ивент емитер лучше чем вотч
Rem1te
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
но тут такое вопрос, а у тебя данные юзера меняются по ходу приложения?
Даже больше скажу, скоро надо будет Лонг Полинг либо сокеты вкручивать Так шо будет меняться даже тогда когда я об этом не знаю
Rem1te
🎋🎋🥷 ngSamurai
больше подписок богу подписок
https://www.youtube.com/watch?v=9fPdYhgwq2M&list=RD9fPdYhgwq2M&start_radio=1&t=1920s&ab_channel=missedHARDCOREGABBER%21
🎋🎋🥷 ngSamurai
ну ивент емитер лучше чем вотч
http://www.binaryintellect.net/articles/5d8be0b6-e294-457e-82b0-ba7cc10cae0e.aspx @metamodern чем сие не угодило?
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
http://www.binaryintellect.net/articles/5d8be0b6-e294-457e-82b0-ba7cc10cae0e.aspx @metamodern чем сие не угодило?
Я видел, но это типа я сам должен писать Этим и не угодило Почему если я что-то кладу в скоуп то всё работает из коробки, а на то что я сам пишу мне надо самому писать какие-то броадкасты и листенеры в своем исходном коде?
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Вот это бесит Это ещё и не документируется нифига нормально И в итоге у тебя два файла на 1.5к строк и иди найди где в цепочке событий отвал произошел
🎋🎋🥷 ngSamurai
Вот это бесит Это ещё и не документируется нифига нормально И в итоге у тебя два файла на 1.5к строк и иди найди где в цепочке событий отвал произошел
ну во первых к этому уже была мотивация и в нг 2+ и уж с приходом OnPush ChangeDetectionStrategy все обновки делаются по большей части руками, за исклбчением автокейсов на стороне самого ангуляря. пихать все в глоб,скоп ёто бэд комедиан практис. так как влияет на перформенс.. вынос. в отдельный провайдер решает с легкостью эту задачу.. где надо подписался.. где надо отписался.. и пуш/пуль сколько влезет...
🎋🎋🥷 ngSamurai
+ по большей части если пользоваться иммутабельностью объектов, то данные не надо будет на каждый чих апплаить/дигестить
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
А когда бродкаст ивент приходит, мне ж можно получается просто скоуп.apply сделать , и данные в UI обновятся?
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Ага
пасиба
🎋🎋🥷 ngSamurai
А когда бродкаст ивент приходит, мне ж можно получается просто скоуп.apply сделать , и данные в UI обновятся?
не совсем и не всегда... лучше так себе в ногу не стрелять.. в лодаше есть deep copy функция. ее лучше использовать на своих данных. или что там сейчас православное от w3c вышло на эту тему )))
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
не совсем и не всегда... лучше так себе в ногу не стрелять.. в лодаше есть deep copy функция. ее лучше использовать на своих данных. или что там сейчас православное от w3c вышло на эту тему )))
не вышло ничего) ну то есть себе в контроллер просто данные копировать и оттуда их читать. каждый раз когда бродкаст ловлю. так?
🎋🎋🥷 ngSamurai
там тоже нг1 еще )
R
всем привет, кто-то знает, как решить проблемы, когда пропадает выделение радиобаттона?
🎋🎋🥷 ngSamurai
всем привет, кто-то знает, как решить проблемы, когда пропадает выделение радиобаттона?
только зачем такой кошмар делать , который у тебя в шаблоне стоит?)
R
только зачем такой кошмар делать , который у тебя в шаблоне стоит?)
есть кейс, когда можно изменять чекбокс только при определенном условии
R
только зачем такой кошмар делать , который у тебя в шаблоне стоит?)
норм ли решение делать это через: $("...").click(function () { условие.. return false})
🎋🎋🥷 ngSamurai
🎋🎋🥷 ngSamurai
R
checkbox это не radiobutton! какое стоит условие задачи?
radionbutton да. например, как в примере выше, если есть какое-то поле с датой рождения. если дата рождения > 2000 года, то запрещать выбор пола = Женский (условный пример)
R
для этого есть ng-disabled
дизейблить не нужно, нужно выдать ошибку в которой будет описано почему нельзя выбрать радиокнопку
🎋🎋🥷 ngSamurai
всем привет, кто-то знает, как решить проблемы, когда пропадает выделение радиобаттона?
плюс не желательно использовать напрямую значения в форме.. лучше занести их в обект
🎋🎋🥷 ngSamurai
тогда делаешь изи... при на change вешаешь обработчик в котором проверяешь условние и если ошибка то сбрасываешь форму до исзодного состояния и выводишь ошибку
🎋🎋🥷 ngSamurai
в твоем примере у тебя гендер на YES забиндин.. а ты его на MALE триггеришь )
R
в твоем примере у тебя гендер на YES забиндин.. а ты его на MALE триггеришь )
понял, спасибо. еще вопрос: если несколько радиокнопок, то при ng-change сбрасывать на предыдущую выбранную кнопку: в этом случае нужно в скопе хранить предыдущее значение?
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Ку, рефакторю приложение, вытащил хедер с "пропсами" в отдельный компонент В начале хедера было: <div ng-show="!$ctrl.isFullScreenMode" так и перенёс в использовании написал: <header isFullScreenMode="isFullScreenMode" isLandingPage="isLandingPage" selectedNavTab="selectedNavTab" ></header> И в модуле написал: const headerModule = angular .module("header", []) .component("header", { template, bindings: { isFullScreenMode: "<", isLandingPage: "<", selectedNavTab: "<", }, }).name; И когда isFullScreenMode меняется это не отображается никак на хедере, он не реагиует То же касается остальных байндингов В чём причина? (название header сократил, оно другое, с html header не конфликтует если шо) ангуляр 1.8 Я в принципе уже передумал это делать но всё равно хочется знать почему не работает
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Односвязный байндинг )
я не понимаю этих ваших прилагательных
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Односвязный байндинг )
я пробовал делать через = то тоже не работало
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
А онЧенжс отрабатывает?
если ты про this.$onChanges то нет
Rem1te
Странно
Rem1te
А передаешь примитивы?
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
А передаешь примитивы?
да первые два булевые, последний строка
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
я наверно потом просто попробую в сендбоксе репро сделать тогда потыкаете
Rem1te
Да давай, аж интересно стало
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
@ngSamurai хєлп( вытащил данные юзера из рутскоупа в отдельный factory UserDetailsService, там прописал методы fetchUserDetails, getUserDetails. вызвал fetch в app.js .run( тут) а в компонентах, где то этого данные читались из rootScope переделал чтоб читались из userDetails через DI. В итоге запросы на фетч отправляются, в сервисе данные меняются, а компоненты, который этот сервис читают никак на изменения не реагируют( какую задачу я пытаюсь решить: я хочу, чтоб мои данные лежали централизованно в отдельном сервисе, при этом чтоб инициализация этих данных происходила централизованно где-то в корне проекта и при этом чтоб компоненты, которые это читают слышали апдейт этих данных, желательно без броадкаста и без $watch. заметил что раньше когда данные фетчились прямо в контроллере у меня после этого вызывалось $rootScope.$apply(); $scope.$apply(); но как я сделаю $scope.apply, если я не знаю когда данные зафетчились
ржака. написал щас другой сервис, именно сервис, и с ним всё работает но данные примитивные, bool
𝖒 𝖊 𝖙 𝖆 𝖒 𝖔 𝖉 𝖊 𝖗 𝖓
Как так?)
Без понятия