Size: a a a

2021 June 04

AK

Alex Kanunnikov in Ember_js
а вообще такие вещи лучше в модели или объекты оборачивать
источник

VZ

Victor Zhuravlev in Ember_js
можешь написать как бы это примерно могло здесь выглядеть? Или ссылку где можно почитать про это.
источник

AK

Alex Kanunnikov in Ember_js
источник

AK

Alex Kanunnikov in Ember_js
ща с объектами пример сделаю
источник

VZ

Victor Zhuravlev in Ember_js
вообще, возможно, я делаю изначально что-то не то)
Ситуация такая: в компонент приходит строка вида some text {{1}} another part of text {{2}} and some more text {{3}} , мне надо ее распарсить и сделать инпут для каждого плейсхолдера, при вводе значения в инпут соответсвующий плейсходер меняется на текси из инпута.
источник

AK

Alex Kanunnikov in Ember_js
не, не сделаю, он не проще чем то что я прислал получается, не хочу путать тебя
источник

AK

Alex Kanunnikov in Ember_js
а, ну в твоём случае может и есть смысл на объекты разбивать
источник

l(

lolmaus (Andrey Mikh... in Ember_js
У меня был кейс: создавал объекты-обертки для данных, что-то вроде местечковых моделей.

Создавал в computed property, но надо было, чтобы при добавлении новых объектов старые сохраняли свой стейт.

И я тогда замутил хитрое CP с кэшем. Если объект ранее был инстанцирован, то возвращался уже существующий инстанс, а не создавался новый. Если после расчета CP остаилсь неиспользованные инстансы — они удалялись.
источник

AK

Alex Kanunnikov in Ember_js
источник

AK

Alex Kanunnikov in Ember_js
минус подхода - храним стейт мутаций в компоненте, но это всё можно наверх делигировать и будет норм работать
источник

AK

Alex Kanunnikov in Ember_js
ну и как-то надо инвалидировать localParts если предполагается что компонент может обслуживать несколько подобных массивов подряд
источник

AK

Alex Kanunnikov in Ember_js
но это можно через did-update модифайер сделать
источник

AK

Alex Kanunnikov in Ember_js
да, тут примерно так-же задача решается, но лучше где-то на верхнем уровне подо всё это сущности создавать чтобы кешей в компоненте не делать
источник

AK

Alex Kanunnikov in Ember_js
можно по-хипстерски сделать
источник

AK

Alex Kanunnikov in Ember_js
через викмапу
источник

AK

Alex Kanunnikov in Ember_js
источник

AK

Alex Kanunnikov in Ember_js
вот так, при изменении массива subsitutions мапа будет пересоздавать реактивные ячейки
источник

AK

Alex Kanunnikov in Ember_js
и если логика только внутри компонента будет завязана на ячейки, то и память не будет течь и всё работать будет по красоте
источник

VZ

Victor Zhuravlev in Ember_js
https://codesandbox.io/s/focused-night-knfl3?file=/src/index.js
Я написал решение на js ,но не понимаю как его нормально перенести на эмбер.
Первое, что пытался сделать - из родителя передавать в компонент всю строку, в самом компоненте в геттере get matches() создавать матчи , но не понял, что как поступить с substitutions, не смог сделать так, чтобы они апдейтились в момент когда передается новая строка. По идее, тут нужен модифайер did-update я так понимаю, но почему-то он у меня не тригеррится когда надо.
источник

VZ

Victor Zhuravlev in Ember_js
предевать substitutions сверху попробовал уже от безысходности)
источник