@angular_js

Страница 220 из 325
Pavel
07.02.2018
11:43:24
@jashka_jashka Привет, Собственно задача какая: Аяксом получаю коллекциб обьевкто с комментариями, после чего они отображаются c помощью ng-repeat. У каждого обьекта есть св-во id, которое я печатаю на странице. Если с бекенда пришел флаг, что нужно проскролить до опредленного елемента, то так же с бекенда приходил id блока, до которого нужен скролл. и Собственно, после того как ng-repeat отредарил все хочу чтоб страницу проскролило до нужного коммента

Remite
07.02.2018
11:53:17
1. ID - это плохо 2. Если это список, то у них есть индекса, рендерите список с одинаковыми, не динамичискими классами, после этого получаете нужный Вам в списке элемент и скролите к нему. 1 проблема отследить когда листинг отрендерился

но помоему $timeout(()=>{});

Google
Remite
07.02.2018
11:54:02
может решить эту проблему

когда он задается без задержки он отрабатывает после рендера

но ето не точно

Sasha
07.02.2018
11:57:12
Не всегда это спасает

Andrey
07.02.2018
13:27:50
@jashka_jashka Привет, Собственно задача какая: Аяксом получаю коллекциб обьевкто с комментариями, после чего они отображаются c помощью ng-repeat. У каждого обьекта есть св-во id, которое я печатаю на странице. Если с бекенда пришел флаг, что нужно проскролить до опредленного елемента, то так же с бекенда приходил id блока, до которого нужен скролл. и Собственно, после того как ng-repeat отредарил все хочу чтоб страницу проскролило до нужного коммента
сделай директиву с параметром и следи за параметром параметр будет изменяться тогда когда будет приходить ид с сервера а в директиве будешь скролить <div ng-repeat="some code" scroll-to-el="id"> elements.... </div> ой блин, там же флаг, короче директиву для каждого элемента делай и в директиве проверяй есть ли флаг и скроль

Abbos
07.02.2018
13:54:20
$routeProvider.when("!/login", { templateUrl: 'loginForm.html', controller: 'loginFormController', controllerAs: 'vm' })



выкидывает В otherwise

Pavel
07.02.2018
14:06:49
но помоему $timeout(()=>{});
спасибо, это решило мою проблему

Ricky
07.02.2018
14:23:03
вечер в хату, ребзя, есть такой вопрос как из эмиттированного скоупом директивы из третьей страницы в главную, через ng-class в шаблоне применить класс стиля по условию нахождения на странице. А то получается, что я нахожусь на главной, нажал на кнопку, событие и стиль отработали, но на другой событие отрабатывает, хотя стиль падает и применяется по условию которое предназначено для главной страницы

John
07.02.2018
14:25:29
А я вообще зол на ангуляржс, что нет обратной совместимости с новыми версиями. Порог вхождения у него высокий, а чтобы писать сложные приложения - придется углубиться во всякие скрытые возможности.
Мое знакомство с Angular началось с 2/4 версии, после него на текущем проект работаю с AngularJS 1.4, и я понимаю какой это трэш после Компонентов, TypeScript, AngularCli, это все намного ускаряет работу и уменьшает порог вхождения, я уже жду момента, когда мы перепишем на том же Angular 5 или Vue

() => void 0;
07.02.2018
14:31:50
Просто в новом анугялре есть ts, который худо бедно, но помогает лишний раз не выстрелить себе в ногу)

Google
John
07.02.2018
14:36:29
Треш?) Тут сравнивать по сути нельзя, это совершенно разные фреймворки) У первого Ангуляра есть вещи, за которые его можно любить)
Ну незнаю, помне это трэш жесткий, 2000 вотчеров и сайт тормозит просто ад, сейчас пишу на ES6, и когда гуглю что-то примеры из vm = this...

Рекомендации по сервисам это огромный маппер обьект типо vm.fucntion = function;

аж глаза выпадают )

Andrey
07.02.2018
14:37:53
при 2000к вотчеров не тормозил не разу

Таир
07.02.2018
14:37:56
Треш?) Тут сравнивать по сути нельзя, это совершенно разные фреймворки) У первого Ангуляра есть вещи, за которые его можно любить)
Например, я недавно почитал внимательно про формы и валидацию в 1.х и офигел просто от навороченности

() => void 0;
07.02.2018
14:38:05
дело вообще не в ts
Дело в тс. Без тс второй ангуляр не нужен))

Andrey
07.02.2018
14:38:37
есть dart и он еще круще чем ts, но не так популярен

John
07.02.2018
14:38:44
Например, я недавно почитал внимательно про формы и валидацию в 1.х и офигел просто от навороченности
О, формы это просто капец ) после Реактивных форм в компоненте я столкнулся с формами на первом ангуляре когда вся логика во вью 100500 проверок, просто жесть

() => void 0;
07.02.2018
14:38:55
да ну?)
Зачем нам ангуляр без декораторов?(((

Sasha
07.02.2018
14:40:25
О, формы это просто капец ) после Реактивных форм в компоненте я столкнулся с формами на первом ангуляре когда вся логика во вью 100500 проверок, просто жесть
Да с формами и правда беда. У меня приложение на 1.5.6 , все оптимизировано, хуки, компоненты, но формы убивают количеством вотчеров. Учитывая, что это ерпшка и там каждое поле динамически меняется.

John
07.02.2018
14:41:11
при 2000к вотчеров не тормозил не разу
у меня обычная таблица на связке angularjs + datatables и если 25 row, 13 столбцов, сделал везде ::oneway + 13 фильров сумарно (по одному на колонку) слайд шоу

Remite
07.02.2018
14:41:41
Выполняйте фильтрацию в логике а не на вью

Andrey
07.02.2018
14:41:41
во втором ангуляре в reactive forms тоже есть минусы, это постоянно длинная строка с выводом ошибки, это просто разочаровывает

John
07.02.2018
14:42:48
Выполняйте фильтрацию в логике а не на вью
фильтрация как раз в контроллере и есть, просто в выпадающем списке нужны оцпии для фильтрации (scroll li списка), + еще вотчеры при открытии

Andrey
07.02.2018
14:42:51
ясен пень )

Remite
07.02.2018
14:42:56
Я например сейчас работаю с компонентом в котором список обьектов в 5к и поиск по 4-ом параметрам, и худо бедно жить можно, а если туда ещё виртуал скролл вставить что бы не рендерило сразу 5к элементов то вообще жизнь - сказка :)

Google
Sasha
07.02.2018
14:44:14
Ну у меня все пагинации и фильтрации на бэкенде, я ж бэкендер^^ Я даже не пытался выводить тонну объектов

Andrey
07.02.2018
14:44:36
+

() => void 0;
07.02.2018
14:47:40
И вроде не жаловался))

Алексей
07.02.2018
14:47:48
Да)
Зачем? о_О

() => void 0;
07.02.2018
14:47:55
? походу я старичок

John
07.02.2018
14:48:07
И вроде не жаловался))
Ну такое, можно но не нужно )

() => void 0;
07.02.2018
14:48:31
Мне нравится это в сочетании с новомодными async/await :)

Sasha
07.02.2018
14:49:07
не, мне нужно в real-time фильтрация
Ну а бэкенд фильтрация чем не реал тайм?

() => void 0;
07.02.2018
14:49:22
Моя клиника начинается с C# :)

Алексей
07.02.2018
14:49:24
Мне нравится это в сочетании с новомодными async/await :)
Промисы нельзя Cancel, Retry, Finally только недавно появился.. в общем не понимаю почему люди на них еще живут

() => void 0;
07.02.2018
14:49:56
John
07.02.2018
14:50:34
Ну а бэкенд фильтрация чем не реал тайм?
Задержка очень долгая, бэк написан на C# и очень мудренная база, пока отсортирует пройдет секунд 5-10 по одному фильтру

Sasha
07.02.2018
14:51:21
John
07.02.2018
14:51:57
У меня не возникало почему-то кейсов, где нужны были эти фичи)
Ну к примеру сделали запрос на бэк, и передумали )

Sasha
07.02.2018
14:55:35
У меня самая главная проблема с angularjs - это резолв состояния. Особенно, когда необходимо коммуницировать между двумя разными компонентами через сервисы

Google
Sasha
07.02.2018
14:56:01


В итоге получается такое

Ну заменяем контроллеры на компоненты, думаю вы понимаете

John
07.02.2018
14:57:41
ну поцепочечке передавайте промисы

Sasha
07.02.2018
14:58:56
Не, я не про промисы

Andrey
07.02.2018
14:59:17
https://zolotyh.github.io/holyjs/#/

John
07.02.2018
14:59:24
А про какой resolve ?

Sasha
07.02.2018
15:02:46
Например, у нас есть где-нибудь компонент с кнопочкой для перезагрузки данных, который перезагружает данные у 3/10 компонентов внутри дочернего div. Что мы делаем в таком случае? Внутри компонента с перезагрузкой инджектим их сервисы: Component1.reload(); Component2.reload(); Component3.reload();

В итоге, у нас потом все приложение в тоннах инжектированных сервисов

Как тут

John
07.02.2018
15:06:01
Например, у нас есть где-нибудь компонент с кнопочкой для перезагрузки данных, который перезагружает данные у 3/10 компонентов внутри дочернего div. Что мы делаем в таком случае? Внутри компонента с перезагрузкой инджектим их сервисы: Component1.reload(); Component2.reload(); Component3.reload();
что мешает сделать один сервис в котором инжектся все, и сделать метод типо ShareService.reload(param...) и по параметру в зависимости что нужно сделать внутри метода Component1.reload(); Component2.reload(); Component3.reload();

и этот ShareService.reload(param...) инжектить в компонент

Sasha
07.02.2018
15:13:51
что мешает сделать один сервис в котором инжектся все, и сделать метод типо ShareService.reload(param...) и по параметру в зависимости что нужно сделать внутри метода Component1.reload(); Component2.reload(); Component3.reload();
А ничего не мешает, но тут встает следующий вопрос. Например у нас есть реюзабельный компонент некой формы, который сделан по привычной схеме: Данные и логика в сервисе. Въюха берет данные из сервиса, мы можем легко из любого места дернуть reload() и данные перезагрузятся. Сервис - ну эт синглтон. Что если мы хотим открыть диалог внутри этой формы, с тем же самым реюзабельным компонентом? Получится, что в сервисе будут данные уже этого диалога и мы потеряем данные в сервисе того этого же компонента, но в другой позиции.

У меня на самом деле тысячи архитектурных вопросов накопилось ^^

John
07.02.2018
15:19:23
Не делать синглтон

чтобы при открытии создавался новый инстанс

Вот и все решение :)

чето такое http://jsfiddle.net/fE8fX/2/

Sasha
07.02.2018
15:30:54
Не делать синглтон
Ну понятно, это вроде очевидное решение. Но и тут есть подводные камни. Но откуда мы узнаем, что за инстанс нам нужен? Порождать ключи в зависимости от вложенности? Например, у нас 100 форм в форме

John
07.02.2018
15:34:42
ну у каждой формы есть имя

Google
John
07.02.2018
15:34:57
создавать инстанс с таким же именем

потом String(name формы) === String(name инстанса)

если true вот ваше совпадение

и делайте что хотите

Sasha
07.02.2018
15:38:35
ну у каждой формы есть имя
Хорошо, а тогда flux как-то решает эту проблему по-своему?

John
07.02.2018
15:39:01
неработал с flux-ом

Aliosha
07.02.2018
20:41:02


Andrey
07.02.2018
20:43:55
что в консоли ?

Aliosha
07.02.2018
20:45:13


Andrey
07.02.2018
20:47:01
красным по белому написано гугли и найдешь ответ

Abbos
07.02.2018
20:47:58
track by index сделай.

Andrey
07.02.2018
20:49:04
вот не нужно просто помогать когда все ясно написано никто это не запоминает, а дальше и вновь такая ошибка будет появляться не понимая почему она возникла

Abbos
07.02.2018
20:49:31
https://stackoverflow.com/questions/39640160/what-is-track-by-in-angularjs-and-how-does-it-work

Прям под твой случай вот

<ul> <li ng-repeat="item in [1, 2, 3, 3] track by $index"> {{ item }} </li> </ul>

Страница 220 из 325