@angular_js

Страница 176 из 325
Luckydevil13
01.09.2017
14:31:40
а можно как-то написать два ng-repeate (сделать два среза на массивом)

но трэкать их как один

Bohdan
01.09.2017
14:31:54
пиши, но костыль порядочный)

а, не))))

Google
Bohdan
01.09.2017
14:32:14
описывай задачу, если есть желание что бы тебе помогли

Luckydevil13
01.09.2017
14:33:03
<krn-widget ng-repeat="widget in $ctrl.widgets track by widget.widgetId" widget="widget"> </krn-widget>

в widget линейным масив

по факту krn-widget это iframe

и ререндирить их нельзя

мне нужно сделать структуру в которой эти iframe в неком сложном лайауте

для просто ты возмем <div>1</div><div>2,3,4</div>

то есть надо за один проход ng-repeate получить структуру вида

через директивы или ватчеры не зайти - так как при ручном изменении дома - происходит рефлов

$ctrl.widgets в нем могу удалять элементы или менятся местами

Bohdan
01.09.2017
14:37:15
почему iframe используешь? это первое

Luckydevil13
01.09.2017
14:37:39
сами виджеты это некое легаси

Bohdan
01.09.2017
14:38:05
второе widget in $ctrl.widgets track by $ctrl.computeHash(widget.widgetId, widget.itemsArray)

Google
Bohdan
01.09.2017
14:39:02
и в контроллере напиши метод computeHash что будет считать hash от айди и элементов массива

ничего страшного в использовании двойного массива нет

Luckydevil13
01.09.2017
14:39:16
id уникальны

computeHash - не нужно

@bednij_bohdan двойной масив это два ng-repeate,

?

или [1],[2,3,4,]?

Bohdan
01.09.2017
14:40:30
или [1],[2,3,4,]?
это если будет готовить структуру заранее

Luckydevil13
01.09.2017
14:41:01
два ng-repeate не вариант

допустим удалился виджет

по layout они сдвинулись - в первом ng-repeate полный reflow iframe

в втором ng-repeate все ок

Bohdan
01.09.2017
14:42:28
я, конечно, не уверен, но кажется полностью в любом случае перерисуется не просто удалится элемент

будет перерисован первый reflow - будет и во втором, если не ошибаюсь

Luckydevil13
01.09.2017
14:43:17
по track by он следит - поэтому просто тусут dom без пересоздания

ошибаетесь

Bohdan
01.09.2017
14:43:52
ну блин, напиши все таки свой метод для подсчета хэшей с track by и не думай костыли

Luckydevil13
01.09.2017
14:43:58
для примере можно удалить 3 элемент

[[1],[2,3,4]] track by ???

Google
Luckydevil13
01.09.2017
14:45:33
но мне надо трэкать by widget.id

Bohdan
01.09.2017
14:45:39
и в контроллере напиши метод computeHash что будет считать hash от айди и элементов массива

ну измени структуру widget пускай там будет id и еще один элемент - массив и передавай в нижестоящий компонент этот массив

Luckydevil13
01.09.2017
14:46:56
не понял

мне нужен один ng-repeate

Bohdan
01.09.2017
14:48:37
widget in $ctrl.widgets track by $ctrl.computeHash(widget.widgetId, widget.itemsArray)

вот для тебя ж написал пример)

он один и будет

Luckydevil13
01.09.2017
14:51:01
я не понимаю как это должно работать, допустим функция вернет для [1] - A , [2,3,4] -B

допустим я удалю 1

2, займет его место

и будет рефлов та как в хэше нет [2]

[2], [3,4]

Bohdan
01.09.2017
14:53:09
оба элемента перерисуются

потому что хэши будут отличаться

Luckydevil13
01.09.2017
14:53:33
ну там не бы без reflow

там же тяжолые iframe

Bohdan
01.09.2017
14:53:48
пиши свой аналог ng-repeat

Luckydevil13
01.09.2017
14:54:07
а там можно?

Google
Bohdan
01.09.2017
14:54:13
перерисовки в твоем случае не избежать

Luckydevil13
01.09.2017
14:54:13
что бы с track by

Bohdan
01.09.2017
14:54:26
не выйдет, как бы тебе не хотелось

потому что элементы меняются

Luckydevil13
01.09.2017
14:56:20
при линейной структру <krn-widget ng-repeat="widget in $ctrl.widgets track by widget.widgetId" widget="widget"> </krn-widget>

все работает без reflow при удалении или изменений позиции

/me задумавается о своем ng-repeate

с блэкджеом

Bohdan
01.09.2017
15:02:23
так а у тебя сейчас разве не двойной ng-repeat? в нижестоящем компоненте винжета нету разве вывода repeat?

Luckydevil13
01.09.2017
15:03:53
нет

у меня только <krn-widget ng-repeat="widget in $ctrl.widgets track by widget.widgetId" widget="widget"> </krn-widget>

вся логика постоения iframe внутри krn-widget

Bohdan
01.09.2017
15:05:19
тогда я не пойму задачу у тебя какие то массивы должны быть, которые не нужны нифигаськи не понятно

Иван
01.09.2017
19:05:52
А отображать одни данные, а модифицировать другие данные не пробовали? После изменения обновлять вью данные в соответствии и изменениями...

Помоему чем проще, тем дешевле/быстрее/ваш вариант

Sergey
01.09.2017
22:41:28
А кто-нибудь использует rxjs с angularjs? Какие плюсы/минусы/подходы?

Bohdan
01.09.2017
22:48:58
А кто-нибудь использует rxjs с angularjs? Какие плюсы/минусы/подходы?
Через день этот вопрос :) В кратце - стоит и очень даже. Какие то вопросы или сложности будут - стучи сюда.

Sergey
01.09.2017
22:49:30
Отлично. Спасибо

Vladislav
03.09.2017
05:31:12
Bohdan Bednij: getVirtual: function (data) { return $http({ method: "POST", url: 'api/fetch/virtual', data: JSON.stringfly(data) }); }

widget in $ctrl.widgets track by $ctrl.computeHash(widget.widgetId, widget.itemsArray)

Google
Bohdan
03.09.2017
09:27:49
? ?

Nazar
03.09.2017
11:52:24
всем привет как эта крнструкция называется ? variable ? true : false

Anton
03.09.2017
11:53:03
Тернарный оператор

Nazar
03.09.2017
11:56:14
благодарю

Anton
03.09.2017
11:56:29
)

Иван
03.09.2017
13:51:57
всем привет как эта крнструкция называется ? variable ? true : false
А зачем люди с завидной регулярностью это спрашивают?

Nazar
03.09.2017
13:53:16
В поиске не нашли и спрашивают

Иван
03.09.2017
13:58:17
Чтобы потом с умным видом сказать "используй тернарный оператор", а не "ну вот эту хрень с вопросиком там, двоеточием..."? ?

Салават _Awasaky_
03.09.2017
14:30:54
condition ? expr1 : expr2

потому что

Иван
03.09.2017
14:52:13
правильный ответ - херня какая-то
Это вырожденная тернарная операция, которая упрощается до variable, однако имеет право на существование... ?

AP?
03.09.2017
15:07:29
всем привет как эта крнструкция называется ? variable ? true : false
Если в результате только буль требуется, а не какие-то результаты вычисления, можно: !!variable

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