問題タブ [nested-properties]

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 投票する
2 に答える
1557 参照

c# - 複雑なネストされたプロパティ用のカスタム モデル バインダー AspNet Core 2.2

私は Angular クライアントを持っており、この本文で POST リクエストを作成します:

{"名前":"例","通貨":"ユーロ"}

私は Odata プロトコルを使用しており、コントローラーは次のとおりです。

テンプレート付き:

および通貨:

Currency は、プライベート コンストラクターを持っているため、特定のクラスです。このため、Currency の新しいインスタンスを作成することはできません。既存のインスタンス (EUR または USD) を使用したい。

(StringEnumeration は Parse メソッドと TryParse メソッドをサポートし、正しいインスタンスを返します)

標準構成:

私の問題は、クライアントが本文でhttp://localhost:4200/templateでPOST を呼び出すときです : {"Name":"example","Currency":"EUR"}

Model Bindel は Currency.EUR インスタンスの「EUR」を変換できないため、モデル バインダーがインスタンス Currency.EUR を使用して Currency プロパティを持つ Template を作成するのに役立つ何かを提供したい

生成されるエラーは次のとおりです。プロパティ「Currency」の値を読み取ろうとしたときに、null 以外の値を持つ「PrimitiveValue」ノードが見つかりました。ただし、null 値を持つ「StartArray」ノード、「StartObject」ノード、または「PrimitiveValue」ノードが予期されていました。

私のプロジェクトでは、内部に Currency プロパティを持つ多くのクラスがあります。

Template クラスで IModelBinder を使用しようとしましたが、動作しますが、通貨プロパティの modelBinder を書きたくありません。

JsonConverterで試してみましたが、うまくいきません(何か間違っているかもしれません)

私の期待される結果は、次の値を持つ Template インスタンスです。

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

javascript - $scope からネストされた変数のプロパティにアクセスするクリーンな方法

Javaスクリプトファイルで同じ変数プロパティにアクセスしたいのですが、プロパティが多すぎるため、コードが少し見苦しくなります。私は次のコードを持っています:

オブジェクトに設定されているプロパティ、またはinvoiceLineオブジェクトに設定されているプロパティにきれいな方法でアクセスする方法はありますか? 私のファイルにはこのコードの繰り返しがたくさんあり、このようなプロパティにアクセスするためのより賢い方法を見つけたいと思っています。invoiceisEditOpenoperations

変数 var を定義し、この値が必要なときにoperations = $scope.operationsプロパティにアクセス できることはわかってoperations.isEditOpenいますが、スコープからすべてのオブジェクトの変数を作成したくないので、もっと単純なものが必要です。

スコープに設定されている変数から必要なプロパティ値を返すことができるfunctionwith two params( )を作成する方法はありますか? objectFromScope, neededPropertyまたは、スコープからオブジェクトのプロパティにアクセスしたいときに、それほど多くのコードを持たないようにするより良い方法はありますか?

PS:次のようなこともできます:

しかし、これは良いアプローチですか?