こんにちは私はAngular5で開発されたWebアプリケーションに取り組んでいます。APIにデータを送り返しています。APIモデルは以下のとおりです。
public partial class ResourceDTO
{
[JsonProperty("id")]
public System.Guid Id { get; set; }
[JsonProperty("state")]
public State State { get; set; }
}
public enum State
{
NotSelected = 0,
Allowed = 1,
Denied = 2
}
APIにデータを送信したい。以下は、タイプスクリプトで定義された列挙型です。
export enum State {
NotSelected,
Allowed,
Denied
}
以下の関数では、データを統合しています。
data.forEach(element => {
const object = { modelType: '', userroleid: '', name: [], hasChildren: false, id: '', state: State };
if (element.id != undefined) {
object.id = element.id;
}
if (element.checked == false) {
object.state.NotSelected;
}
if (element.checked == true) {
object.state.Allowed;
}
if (element.allow == false) {
object.state.Denied;
}
saveData.push(object);
});
以下は、データを統合した後のsaveDataです。
誰かが私にそれを正しくやっているのか、それとも私が欠けている何かを教えてもらえますか?上記の出力が期待されますか?どんな助けでもいただければ幸いです。ありがとうございました。
読み取り専用であるため、typescript列挙値を設定することはできません。サーバーに投稿する前に、オブジェクトリテラルを作成し、選択に基づいて値を設定することで、以下の代替手段を試すことができます。
https://basarat.gitbooks.io/typescript/docs/enums.html
const object = { modelType: '', userroleid: '', name: [], hasChildren: false, id: '', state: {}};
var newState ={
"Allowed": element.checked,
"NotSelected":!element.checked,
"Denied":element.allow == false
}
object.state=newState;
if (element.id != undefined) {
object.id = element.id;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加