問題タブ [cfimport]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
181 参照

json - import ステートメントを尊重しながら、ColdFusion の別の cfc のコンテキストで関数を実行する

バックグラウンド

componentFromJsonJSON からコンポーネント グラフを再構成できる関数を作成しようとしています。getMetaDataコンポーネントのプロパティを検索して適切な型をインスタンス化するために使用している単純なアプローチを採用しました。

関数は次のように使用されます。comp = componentFromJson(json, 'RootComponentType')

問題

問題は、以下に示すように、名前空間がインポートされている可能性があるため、プロパティの型が必ずしも完全修飾されていないことです。

createObject('Test')関数コンテキストから実行しようとするとcomponentFromJson、呼び出しコンテキストにインポートがないため、明らかに失敗します。

親コンポーネントでコンポーネント ファクトリ関数を一時的に動的に定義し、親 CFC のコンテキストでファクトリ関数を呼び出すために使用するなど、さまざまな方法で問題を解決しようとしましinvokeたが、うまくいきません。

例えば

恐ろしい解決策

現時点でこの問題を解決するには、CFC の ColdFusion コードを解析してインポート ステートメントを抽出するしかないと思いますが、これは目的に対して遅すぎると予想されます。それだけでなく、これはすべてのエッジケースをカバーするわけではありません.

アイデア?

誰かがこの問題を解決するためのより良いアイデアを持っているかどうか知りたいですか? 私が取ることができるまったく異なるアプローチはありますか?おそらく、ColdFusion ランタイム クラスを使用してこれを行う方法がありますが、まだわかりません。