У меня есть html-файл, который использует настраиваемый компонент. Пользовательский компонент достигает и получает данные по методу bind(). Таким образом, когда компонент привязывается, он получает данные и соответственно устанавливает свойства. Этот компонент также имеет метод Save(), который при вызове должен отправить объект в базу данных.Доступ к данным пользовательских компонентов/методам
Теперь, в моем внешнем html-файле, я импортировал этот настраиваемый компонент. Поэтому у меня есть пользовательский компонент, а затем у меня есть кнопки отправки (а не часть пользовательского компонента), как это:
<custom-component></custom-component>
<button click.trigger="submitCustomComponentData()"></button>
Причина у меня нет кнопки в представлении пользовательского компонента, потому что это мнение не всегда будут иметь те же кнопки, что и делает компонент нерасширяемым.
Метод submitCustomComponentData()
в основном вызывает метод обновления, который находится в моей виртуальной машине компонента.
Теперь, когда страница загружается, все работает идеально. Данные втягиваются, все мои входы предварительно заполнены предыдущими данными (из БД). Все прекрасно. Однако, когда я вызываю метод submitCustomComponentData()
(или нажмите кнопку), я получаю сообщение об ошибке, потому что объект не заполняется. Это похоже на то, что я теряю экземпляр или что-то в этом роде.
Вот отрывок из некоторых важных частей:
Это то, что мой внешний HTML файл выглядит следующим образом. Он состоит из пользовательского компонента.
<template>
<require from="resources/components/dispatch-questions/dispatch-questions"></require>
<section class="pages au-animate">
<div class="row" id="dispatch-questions">
<dispatch-questions></dispatch-questions>
</div>
</section>
</template>
И VM для этого получает впрыскивается с компонентом диспетчерских-вопросы так:
constructor(private router: Router, private dq: DispatchQuestions) {
}
Он также имеет метод click.trigger, который должен вызывать метод updateDB, который находится в компоненте. В этот момент компонент (который уже должен иметь тот же экземпляр, который был создан на bind()), должен передать этот объект в БД.
Но я получаю сообщение об ошибке, потому что по какой-то причине объект пуст. Функция в компоненте захватывает this.myObject
и отправляет его в БД. Я думаю, что когда я вызываю функцию обновления из моей внешней виртуальной машины (а не из VM-компонента), я теряю экземпляр this
компонента. Я думаю, что это проблема. Не уверен, как это исправить, если это проблема. Любая помощь была бы потрясающей!
Я попытался создать простую версию на Gist. https://gist.run/?id=f07b2eaae9bec27acda296189585ea6c