Прямые манипуляции с DOM (как упомянуто в вашем MainComponent.js
фрагменте), как правило, не рекомендуются ни в одной из оболочек внешнего интерфейса, поскольку сама платформа будет эффективно управлять DOM. Шаблоны Ember являются декларативными по своему дизайну, и, следовательно, этот вариант использования можно легко выразить в шаблоне.
Поскольку вам необходимо многократно работать с рендерингом компонента, это похоже на то, как консоль регистрирует переменную несколько раз. в javascript. Нам нужно l oop их в шаблоне после инициализации цикла, чтобы сначала была одна запись. Мы можем динамически создавать новую запись sh каждый раз, когда пользователь нажимает кнопку Добавить .
Псевдокод будет иметь вид:
MainComponent.js
@tracked rows = [{ name: '', phone: '' }];
@action
clickAdd() {
this.rows.push({ name: '', phone: '' });
this.rows = this.rows; // to re-render the template
}
MainComponent.hbs
{{#each this.rows as |row|}}
<RowComponent @row={{row}} />
{{/each}}
<button onClick={{this.clickAdd}}> Add </button>
Надеюсь, это поможет.