pa[aad
@jashka_jashka Привет, Собственно задача какая: Аяксом получаю коллекциб обьевкто с комментариями, после чего они отображаются c помощью ng-repeat. У каждого обьекта есть св-во id, которое я печатаю на странице. Если с бекенда пришел флаг, что нужно проскролить до опредленного елемента, то так же с бекенда приходил id блока, до которого нужен скролл. и Собственно, после того как ng-repeat отредарил все хочу чтоб страницу проскролило до нужного коммента
сделай директиву с параметром и следи за параметром параметр будет изменяться тогда когда будет приходить ид с сервера а в директиве будешь скролить <div ng-repeat="some code" scroll-to-el="id"> elements.... </div> ой блин, там же флаг, короче директиву для каждого элемента делай и в директиве проверяй есть ли флаг и скроль
ММ
$routeProvider.when("!/login", { templateUrl: 'loginForm.html', controller: 'loginFormController', controllerAs: 'vm' })
ММ
Ребят есть вопрос до сих пор не понимаю в чем проблема. Вот так выглядит логин форма, в `<nav>` я указал как можно увидеть с картинки `href="#!/login".Дело в том что внутрь`$routeProvider` не попадает
ММ
выкидывает В otherwise
Pavlo
но помоему $timeout(()=>{});
спасибо, это решило мою проблему
Eugenio
вечер в хату, ребзя, есть такой вопрос как из эмиттированного скоупом директивы из третьей страницы в главную, через ng-class в шаблоне применить класс стиля по условию нахождения на странице. А то получается, что я нахожусь на главной, нажал на кнопку, событие и стиль отработали, но на другой событие отрабатывает, хотя стиль падает и применяется по условию которое предназначено для главной страницы
Eugene
А я вообще зол на ангуляржс, что нет обратной совместимости с новыми версиями. Порог вхождения у него высокий, а чтобы писать сложные приложения - придется углубиться во всякие скрытые возможности.
Мое знакомство с Angular началось с 2/4 версии, после него на текущем проект работаю с AngularJS 1.4, и я понимаю какой это трэш после Компонентов, TypeScript, AngularCli, это все намного ускаряет работу и уменьшает порог вхождения, я уже жду момента, когда мы перепишем на том же Angular 5 или Vue
Binali
Просто в новом анугялре есть ts, который худо бедно, но помогает лишний раз не выстрелить себе в ногу)
Eugene
Треш?) Тут сравнивать по сути нельзя, это совершенно разные фреймворки) У первого Ангуляра есть вещи, за которые его можно любить)
Ну незнаю, помне это трэш жесткий, 2000 вотчеров и сайт тормозит просто ад, сейчас пишу на ES6, и когда гуглю что-то примеры из vm = this...
Eugene
Рекомендации по сервисам это огромный маппер обьект типо vm.fucntion = function;
Eugene
аж глаза выпадают )
pa[aad
при 2000к вотчеров не тормозил не разу
Tair
Треш?) Тут сравнивать по сути нельзя, это совершенно разные фреймворки) У первого Ангуляра есть вещи, за которые его можно любить)
Например, я недавно почитал внимательно про формы и валидацию в 1.х и офигел просто от навороченности
Binali
дело вообще не в ts
Дело в тс. Без тс второй ангуляр не нужен))
pa[aad
есть dart и он еще круще чем ts, но не так популярен
Eugene
Например, я недавно почитал внимательно про формы и валидацию в 1.х и офигел просто от навороченности
О, формы это просто капец ) после Реактивных форм в компоненте я столкнулся с формами на первом ангуляре когда вся логика во вью 100500 проверок, просто жесть
Binali
да ну?)
Зачем нам ангуляр без декораторов?(((
Sasha
О, формы это просто капец ) после Реактивных форм в компоненте я столкнулся с формами на первом ангуляре когда вся логика во вью 100500 проверок, просто жесть
Да с формами и правда беда. У меня приложение на 1.5.6 , все оптимизировано, хуки, компоненты, но формы убивают количеством вотчеров. Учитывая, что это ерпшка и там каждое поле динамически меняется.
Eugene
при 2000к вотчеров не тормозил не разу
у меня обычная таблица на связке angularjs + datatables и если 25 row, 13 столбцов, сделал везде ::oneway + 13 фильров сумарно (по одному на колонку) слайд шоу
Rem1te
Выполняйте фильтрацию в логике а не на вью
pa[aad
во втором ангуляре в reactive forms тоже есть минусы, это постоянно длинная строка с выводом ошибки, это просто разочаровывает
Eugene
Выполняйте фильтрацию в логике а не на вью
фильтрация как раз в контроллере и есть, просто в выпадающем списке нужны оцпии для фильтрации (scroll li списка), + еще вотчеры при открытии
pa[aad
ясен пень )
Rem1te
Я например сейчас работаю с компонентом в котором список обьектов в 5к и поиск по 4-ом параметрам, и худо бедно жить можно, а если туда ещё виртуал скролл вставить что бы не рендерило сразу 5к элементов то вообще жизнь - сказка :)
Sasha
Ну у меня все пагинации и фильтрации на бэкенде, я ж бэкендер^^ Я даже не пытался выводить тонну объектов
pa[aad
+
Eugene
и я понял что AngularJS это явно не любит )
Binali
И вроде не жаловался))
Алексей
Да)
Зачем? о_О
Binali
🙂 походу я старичок
Eugene
И вроде не жаловался))
Ну такое, можно но не нужно )
Binali
Мне нравится это в сочетании с новомодными async/await :)
Sasha
не, мне нужно в real-time фильтрация
Ну а бэкенд фильтрация чем не реал тайм?
Binali
Моя клиника начинается с C# :)
Алексей
Мне нравится это в сочетании с новомодными async/await :)
Промисы нельзя Cancel, Retry, Finally только недавно появился.. в общем не понимаю почему люди на них еще живут
Eugene
Ну а бэкенд фильтрация чем не реал тайм?
Задержка очень долгая, бэк написан на C# и очень мудренная база, пока отсортирует пройдет секунд 5-10 по одному фильтру
Eugene
У меня не возникало почему-то кейсов, где нужны были эти фичи)
Ну к примеру сделали запрос на бэк, и передумали )
Sasha
У меня самая главная проблема с angularjs - это резолв состояния. Особенно, когда необходимо коммуницировать между двумя разными компонентами через сервисы
Sasha
Sasha
В итоге получается такое
Sasha
Ну заменяем контроллеры на компоненты, думаю вы понимаете
Eugene
ну поцепочечке передавайте промисы
Sasha
Не, я не про промисы
pa[aad
https://zolotyh.github.io/holyjs/#/
Eugene
А про какой resolve ?
Sasha
Например, у нас есть где-нибудь компонент с кнопочкой для перезагрузки данных, который перезагружает данные у 3/10 компонентов внутри дочернего div. Что мы делаем в таком случае? Внутри компонента с перезагрузкой инджектим их сервисы: Component1.reload(); Component2.reload(); Component3.reload();
Sasha
В итоге, у нас потом все приложение в тоннах инжектированных сервисов
Sasha
Как тут
Eugene
Например, у нас есть где-нибудь компонент с кнопочкой для перезагрузки данных, который перезагружает данные у 3/10 компонентов внутри дочернего div. Что мы делаем в таком случае? Внутри компонента с перезагрузкой инджектим их сервисы: Component1.reload(); Component2.reload(); Component3.reload();
что мешает сделать один сервис в котором инжектся все, и сделать метод типо ShareService.reload(param...) и по параметру в зависимости что нужно сделать внутри метода Component1.reload(); Component2.reload(); Component3.reload();
Eugene
и этот ShareService.reload(param...) инжектить в компонент
Sasha
что мешает сделать один сервис в котором инжектся все, и сделать метод типо ShareService.reload(param...) и по параметру в зависимости что нужно сделать внутри метода Component1.reload(); Component2.reload(); Component3.reload();
А ничего не мешает, но тут встает следующий вопрос. Например у нас есть реюзабельный компонент некой формы, который сделан по привычной схеме: Данные и логика в сервисе. Въюха берет данные из сервиса, мы можем легко из любого места дернуть reload() и данные перезагрузятся. Сервис - ну эт синглтон. Что если мы хотим открыть диалог внутри этой формы, с тем же самым реюзабельным компонентом? Получится, что в сервисе будут данные уже этого диалога и мы потеряем данные в сервисе того этого же компонента, но в другой позиции.
Sasha
У меня на самом деле тысячи архитектурных вопросов накопилось ^^
Eugene
Не делать синглтон
Eugene
чтобы при открытии создавался новый инстанс
Eugene
Вот и все решение :)
Eugene
чето такое http://jsfiddle.net/fE8fX/2/
Sasha
Не делать синглтон
Ну понятно, это вроде очевидное решение. Но и тут есть подводные камни. Но откуда мы узнаем, что за инстанс нам нужен? Порождать ключи в зависимости от вложенности? Например, у нас 100 форм в форме
Eugene
ну у каждой формы есть имя
Eugene
создавать инстанс с таким же именем
Eugene
потом String(name формы) === String(name инстанса)
Eugene
если true вот ваше совпадение
Eugene
и делайте что хотите
Sasha
ну у каждой формы есть имя
Хорошо, а тогда flux как-то решает эту проблему по-своему?
Eugene
неработал с flux-ом
Aliosha
Подскажыте почему невыводит елементы масива
Aliosha
pa[aad
красным по белому написано гугли и найдешь ответ
ММ
track by index сделай.