为 ServiceStack DTO 赋值 Angular 6
Give values to ServiceStack DTO Angular 6
我有一个用于创建设备类型对象的表单,具有属性、名称和 ID。当我提交表单时,我得到了数据。进入设备对象。
var result: Equipment = this.addEquipment.value;
然后我创建了一个 CreateEquipment 实例,我想在其中插入来自 Equipment 的值。
var createEquipment: CreateEquipment = new CreateEquipment();
然后我尝试从结果中添加名称。
createEquipment.name = result.name;
这是它失败的地方(未存储值)但是当我这样做时
createEquipment.name = "ASDASDASD";
有效。
有什么明显的我遗漏的吗?
名称后的console.log(result)和console.log(createEquipment)的图片应该已经定义好了。
这没有包含足够的信息来确定问题是什么,但是每当您使用显式强制转换时,您就是在告诉编译器类型是什么,它在 运行 时不知道是否该断言是正确的,由您来确保您告诉它的类型是它在 运行 时间收到的类型。
当您 运行 遇到这样的问题时,请记录实际值,以便确认它与您期望的 type/shape 匹配,即:
var result: Equipment = this.addEquipment.value;
console.log(result);
创建新实例时无需指定类型,这是隐含且不必要的重复,只需执行以下操作:
var createEquipment = new CreateEquipment();
如果这是问题所在,请登录以查看您实际分配的内容:
console.log(result.name, result);
createEquipment.name = result.name;
您的问题表明 result.name
不包含您认为的内容。
查看更新后的屏幕截图表明问题是 运行time JavaScript 对象正在使用 PascalCase 但类型假定 驼峰式。如果您将 ServiceStack 与 .NET Core 一起使用,它应该是 using camelCase by default 除非您以某种方式覆盖它,例如 JsConfig.*
或以其他方式强制它使用 PascalCase。
如果您不使用 .NET Core,您可以强制使用驼峰命名法:
SetConfig(new HostConfig {
UseCamelCase = true
});
我有一个用于创建设备类型对象的表单,具有属性、名称和 ID。当我提交表单时,我得到了数据。进入设备对象。
var result: Equipment = this.addEquipment.value;
然后我创建了一个 CreateEquipment 实例,我想在其中插入来自 Equipment 的值。
var createEquipment: CreateEquipment = new CreateEquipment();
然后我尝试从结果中添加名称。
createEquipment.name = result.name;
这是它失败的地方(未存储值)但是当我这样做时
createEquipment.name = "ASDASDASD";
有效。
有什么明显的我遗漏的吗?
名称后的console.log(result)和console.log(createEquipment)的图片应该已经定义好了。
这没有包含足够的信息来确定问题是什么,但是每当您使用显式强制转换时,您就是在告诉编译器类型是什么,它在 运行 时不知道是否该断言是正确的,由您来确保您告诉它的类型是它在 运行 时间收到的类型。
当您 运行 遇到这样的问题时,请记录实际值,以便确认它与您期望的 type/shape 匹配,即:
var result: Equipment = this.addEquipment.value;
console.log(result);
创建新实例时无需指定类型,这是隐含且不必要的重复,只需执行以下操作:
var createEquipment = new CreateEquipment();
如果这是问题所在,请登录以查看您实际分配的内容:
console.log(result.name, result);
createEquipment.name = result.name;
您的问题表明 result.name
不包含您认为的内容。
查看更新后的屏幕截图表明问题是 运行time JavaScript 对象正在使用 PascalCase 但类型假定 驼峰式。如果您将 ServiceStack 与 .NET Core 一起使用,它应该是 using camelCase by default 除非您以某种方式覆盖它,例如 JsConfig.*
或以其他方式强制它使用 PascalCase。
如果您不使用 .NET Core,您可以强制使用驼峰命名法:
SetConfig(new HostConfig {
UseCamelCase = true
});