
des
16.02.2018
09:52:52
кто в курсе ? Медиа-запросом я не очень понимаю как это сделать, т.к. мне просто макс. ширина нужна, а девайсов много...
нужна максимальная ширина
в ландшафтной ориентации ) путано написал
извиняюсь

Google

John
16.02.2018
10:59:57
Это вопрос по верстке а не по Ангуляру

des
16.02.2018
11:01:58
разобрался, там масштаб менялся автоматом

Sasha
16.02.2018
11:52:05
Такой кейс - есть некая форма, есть модалочки.
У модалочек вложенность практически бесконечная. Есть какие-нибудь способы отключить вотчеры, которые находятся в parent'ах, помимо ng-if?

Andrey
16.02.2018
11:53:14

Sasha
16.02.2018
11:53:39

Andrey
16.02.2018
11:54:06
а зачем тебе держать открытую модалку ?
только ради биндингов ?

Sasha
16.02.2018
11:56:01
а зачем тебе держать открытую модалку ?
только ради биндингов ?
Нет, смотри. Есть форма, там есть какая-нибудь связь, типа one2many. То есть в определенном поле открывается еще форма в модалке, в этой мoдалке может быть еще поле o2m с модалкой. То есть получается у нас есть основная форма с вотчерами, когда открываем модалку - добавляются еще вотчеры и так до бесконечности

Andrey
16.02.2018
11:56:50

Sasha
16.02.2018
11:58:14
Это ерп и там все динамически

Andrey
16.02.2018
12:02:07

Sasha
16.02.2018
12:02:09

Bohdan
16.02.2018
12:02:30

Google

Sasha
16.02.2018
12:02:56
На скрине - это не ангуляровское приложение, а десктопное

Andrey
16.02.2018
12:03:36
да, 5 модалок это текущие открытые ( типа текущий открытый стек ), а весь стек храните рядом
просто при нужной модалке, вам нужно будет ее показать и передав ее состояние
при этом сохранив ее позиционирование с помощью хранения z-index

Sasha
16.02.2018
12:03:41

Bohdan
16.02.2018
12:03:57

Sasha
16.02.2018
12:04:53
Каждое поле динамически зависит от других и вычисляется с помощью специальных выражений.

Bohdan
16.02.2018
12:05:00
Скрытые компоненты не будут гнобить дайджест

Sasha
16.02.2018
12:05:46
А в интерфейсе их скрывать ng-if'ом?

Bohdan
16.02.2018
12:05:54
И вот тогда действительно можно очень глубоко в кроличью нору лезть

Sasha
16.02.2018
12:07:09
Насчет хранений стейтов по мере закрытия - это понятно. У меня скорее вопрос, как убрать из DOM'а. Насколько я понимаю, это единственный способ убрать вотчеры
Имею ввиду специфичные, типа ng-required/...

Andrey
16.02.2018
12:07:30

Bohdan
16.02.2018
12:08:24

Sasha
16.02.2018
12:08:40

Andrey
16.02.2018
12:08:48

Sasha
16.02.2018
12:09:59
А как можно оптимизировать выражения в полях? Потому что даже обычная форма работает достаточно медленно
Я просто не понимаю причин, почему тормозит так. Может глупые вопросы задаю, я сам бэкенд/десктоп.

Andrey
16.02.2018
12:11:39

Bohdan
16.02.2018
12:11:40
Скорее всего, дофигище вотчеров

Google

Sasha
16.02.2018
12:13:00
А я уже старался с оптимизировать количество вотчеров, соежу за ними. Где можно - ::, односторонние биндинги, но вотчеров на форме все равно 1500, а иногда и 1900

Andrey
16.02.2018
12:14:19
а ты вотчеры удаляешь когда событие $onDestroy эмитится в скоуп ?

Sasha
16.02.2018
12:16:24
По поводу выражений, например вот выражение для ng-disabled:
const expr = {
"s": [{
"__class__": "Not", "v": {
"s2": "draft", "s1": {"v": "state", "d": "", "__class__": "Eval"}, "__class__": "Equal"
}
},
{
"s": [{"__class__": "Bool", "v": {"v": "lines", "d": [0], "__class__": "Eval"}},
{"__class__": "Bool", "v": {"v": "party", "d": "", "__class__": "Eval"}}],
"__class__": "And"
}, {"__class__": "Bool", "v": {"v": "lines", "d": [0], "__class__": "Eval"}}],
"__class__": "Or"
};
То есть там большие выражения, которые резолвятся в соответствие с текущими данными формы
И такие штуки на каждое поле


Andrey
16.02.2018
12:17:33
По поводу выражений, например вот выражение для ng-disabled:
const expr = {
"s": [{
"__class__": "Not", "v": {
"s2": "draft", "s1": {"v": "state", "d": "", "__class__": "Eval"}, "__class__": "Equal"
}
},
{
"s": [{"__class__": "Bool", "v": {"v": "lines", "d": [0], "__class__": "Eval"}},
{"__class__": "Bool", "v": {"v": "party", "d": "", "__class__": "Eval"}}],
"__class__": "And"
}, {"__class__": "Bool", "v": {"v": "lines", "d": [0], "__class__": "Eval"}}],
"__class__": "Or"
};
нихуу....
тут скорее тебе нужно нативно переписать добавление классов
в телеге так сделано почти
только они биндят текст вручную вроде

Sasha
16.02.2018
12:18:40
С резолвом выражений все ок, но они дергаются постоянно
Кстати, а количество дайждестов за n количество времени - важно?
У меня ощущение, что есть какой-то ботлнек

Andrey
16.02.2018
12:19:49

Sasha
16.02.2018
12:26:56
В общем, у меня в топе именно вотчеры, которые пораждаются выражениями для disabled/hide/required
И вот как их соптимизировать? На десктопе это вообще не было ботлнеком

Andrey
16.02.2018
12:31:52

Sasha
16.02.2018
12:33:59
Мб вообще для таких вещей ангуляржс - не самое удачное решение?(эт не я придумал его использовать) А есть смысл смигрировать?

Andrey
16.02.2018
12:35:48

Google

Andrey
16.02.2018
12:36:33

Sasha
16.02.2018
12:37:37
у вас все на js ?
Кастомное я писал именно связанное с ангуляром, то есть так или иначе это не чистый жс.
Бэкенд - python+go(то, чем я в основном занимаюсь)
Но в последние пол года пишу еще и фронт. И прям очень больно

Andrey
16.02.2018
12:38:23
я про фронт, ну типа есть либа для TS у которой валидируется не форма, а сама модель с декораторами

Bohdan
16.02.2018
12:39:09

Sasha
16.02.2018
12:39:37
Поменял одно значение - вся форма поменялась

Bohdan
16.02.2018
12:41:47
А
Беда тогда

Andrey
16.02.2018
12:42:46

Sasha
16.02.2018
12:42:56

Bohdan
16.02.2018
12:44:06
Пайпы какие то используешь?

Sasha
16.02.2018
12:45:59

Andrey
16.02.2018
12:46:37
фильтр

Sasha
16.02.2018
12:47:14
Фильтры не использую, они ж адски томрозят

Bohdan
16.02.2018
12:48:09
Хм
Ну тогда без исключений только код смотреть, по другому финиш фиг чем поможем

Buka
16.02.2018
12:53:31


Иван
16.02.2018
13:02:26
в какой-то момент первый просто отказался работать из-под даунгрейженых компонентов а2+ это как вообще, из-под?
так же совместно работающие роутеры не могли определиться кто должен обслуживать рефреш страницы и ручное изменение урла... т.е. вроде как линки в самом приложении работали, однако если в ручную ввести урл или зарефрешить страницу в ui-view/outlet не заполнялся... я думаю если покапаться, можно было как-нибудь донастроить с бубном и такой-то матерью, но прям большого желания не было. и если в разработке, это вроде как не очень больно, то ни о каком продакшн варианте вообще не могло идти речи... как люди в гибриде уходят в прод, даже не представляю. возможно стоило изначально мигрировать на ui-router для а2+ (может бы глаже прошло), а потом на нативный роутер, не знаю.


Buka
16.02.2018
13:15:11

Иван
16.02.2018
13:26:07

Google

Kim
16.02.2018
14:35:48
привет, у кого то есть приложение ,где используется angular google maps? если да, то не вылетали ли ошибка такого рода TypeError: Cannot read property 'removeChild' of null at MarkerLabel_.onRemove ?
до до вчерашнего момента все отлично работало, ничего не менялось и тут раз и постоянно вылетает при наведени курсора на карту

Yuriy
16.02.2018
16:50:20
ребят, помогите, как с директивы узнать, что material tabs подгрузилась полностью ? мне надо просчитывать координаты, высоту, ширину. window.onload не подходит, есть ли аналог mdTabs.onLoad ?)

Remite
16.02.2018
16:51:38
Странное требование, а Вам зачем?

Yuriy
16.02.2018
16:55:40
хочу пересчитать позицию елемента на странице, но считать я ее могу только послке того как он полностью прогружен
получается, что у меня все всегда работает, кроме тех случаев, когда таба динамически кидается, тогда onload не срабатывает и мне бы нативные вещи узнать, как люди узнают, что элемент полностью прогружен и присутствует на странице

Remite
16.02.2018
16:56:54
$timeout без второго параметра попробуйте в своей директиве
Нативная джс апишка не позволяет узнавать состояние дом узлов к сожалению

Yuriy
16.02.2018
16:57:59
рано)
material tabs загружается позже моего таймаута

Andrey
16.02.2018
17:00:50
material tabs загружается позже моего таймаута
я тебе предложу костыль, но у тебя будет разметка внутри tab
так вот, добавь туда ng-init
и добавь вотчер на инициализацию этой переменной и событие вызывай
но это очень и очень плохо, хреново конечно такие советы давать

Yuriy
16.02.2018
17:01:30
Я и это уже видел) и рекурсивный вызов в $watch пока не будут offset().left у элемента))

Andrey
16.02.2018
17:01:52

Yuriy
16.02.2018
17:02:27
сейчас попробую)

Капитан
17.02.2018
11:27:14
Всем привет. Подскажите пожалуйста. У меня есть директива, которая выравнивает блоки между собой при определённых условиях. Проблема в том, что на странице блоки меняются без перезагрузки страницы, соответственно не пересчитывается высота. Можно ли как то вызывать директиву по клику? Тайм-аут не подходит, он может поломать мобилку.

Andrey
17.02.2018
11:35:37

Капитан
17.02.2018
11:37:23

Andrey
17.02.2018
11:37:44