カスタムコンポーネントを使用するhtmlファイルがあります。カスタムコンポーネントは、bind()メソッドを呼び出してデータを取得します。したがって、コンポーネントがバインドされると、データが取得され、それに応じてプロパティが設定されます。このコンポーネントにはSave()メソッドもあります。このメソッドは、呼び出されるとオブジェクトをデータベースに送信する必要があります。カスタムコンポーネントのデータ/メソッドへのアクセス
私の外側のhtmlファイルで、このカスタムコンポーネントをインポートしました。だから私は、カスタムコンポーネントを持っているし、私はこのように(カスタムコンポーネントの一部ではない)送信ボタンを持っている:
<custom-component></custom-component>
<button click.trigger="submitCustomComponentData()"></button>
私はカスタムコンポーネントビューにボタンを持っていない理由は、そのビューからです必ずしも同じボタンを持つわけではないので、コンポーネントを拡張不可能にします。
submitCustomComponentData()
メソッドは、基本的に、コンポーネントVM内にあるupdateメソッドを呼び出します。
ページが読み込まれると、すべてが完璧に実行されます。データが取り込まれ、私のすべての入力は前のデータ(DBから)で事前設定されます。すべてが素晴らしいです。しかし、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) {
}
また、コンポーネントであるupdatedbのメソッドを呼び出す必要がありclick.trigger方法があります。その時点で、コンポーネント(すでにbind()で作成された同じインスタンスを持つはずです)は、そのオブジェクトをDBに送信する必要があります。
何らかの理由でオブジェクトが空であるため、エラーが発生します。コンポーネント内の関数はthis.myObject
を取得し、それをDBに送信しています。私は、私の外側のVM(コンポーネントVMではない)からコンポーネントのthis
インスタンスを失っている更新機能を呼び出すと思う。私はそれが問題だと思う。それが問題ならば、それを修正する方法は不明だ。どんな助けも素晴らしいだろう!
私はGistで簡単なバージョンを作成しようとしました。 https://gist.run/?id=f07b2eaae9bec27acda296189585ea6c