DevExtremeライブラリを使用して、私は非常に奇妙な問題を抱えています。私はセル編集可能なDataGridを構築し、その上に検証を実装しました。特定のフィールドでエラーが発生すると、赤い元に戻すボタンが表示されます。ユーザーが特にルーティングを使用して別のページに移動すると、同じ[戻る]ボタンが消えません。ただし、動的に生成される別のコンポーネントに移動すると、DevExtremeのDataGridインスタンスによって公開されるcancelEditData()関数を使用して削除できます。問題を説明するplunkerは、以下の手順で問題を再現してください。今 DevExteme Cancelボタンはコンポーネントから離れて移動しています。
- クリアまでの最初の行の列名フィールドの値をクリックして、トップlavel「マイ・コンポーネント」メニュー項目をクリックすると、あなたは見るでしょうボタンがその画面にとどまることを確認してください
- しかし、子2サイドバーのメニューリンクをクリックすると、子1と子2の両方がルーティング経由ではなく動的に生成されるので、子2サイドバーメニューリンクが消えます。
ご協力いただければ幸いです。私はすでにDevExtremeのサポートに連絡しており、Angular 2フレームワークの問題だと言っていますが、なぜそれが私を打ち負かすのですか?
関心のコードは、私がparent.tsを見て、しかし、コンソールエラーメッセージ
のトンを取得し、Plunkerを実行することができませんでしたSRC/parent.tsに
onItemClick(event) {
// this works as this is invoked before I create the new component
if (this.currentComponentHolder.instance.gridInstance)
this.currentComponentHolder.instance.gridInstance.cancelEditData();
let item = event.itemData;
this.setContent(item.component);
}
// this is the piece which is not working. Also, noteworthy is the fact that the above working code also does not work when i put it in the ngOnDestroy of Child1 component.
ngOnDestroy() {
if (this.currentComponentHolder.instance.gridInstance)
this.currentComponentHolder.instance.gridInstance.cancelEditData();
}
これは本当に驚くべきことですが、私にとってはプランカがうまく動作するので、どのようなエラーが出ているのか確認できますか? はい、私は自分のアプリでOnDestroyを試しましたが、onNgDestroyメソッドが既にparent.tsにあるのが分かるので、問題はありませんでした。私は開発者コンソールを使ってデバッグを行い、メソッドが実行されるのを見ることができました。 – Sayantan
今回はPlunkrを走らせることができました。あなたの問題は、角度のある問題ではなく、重大な問題ではないかと思います。 cancelEditData()の呼び出しは実際に何もしていません。 私はcancelEditData()については、セルがフォーカスモードでなければならないと思います。私はdevExtremeを使用していませんでしたので、私はタイムリーにそれを把握することができませんでした。幸運 – bakerhumadi
DevExtremeがいくつかの前後で問題になっていることに同意し、それを修正していることに感謝します。 – Sayantan