这是一个小问题,我假设在RIA,特别是Flex / AS3中弹出ALOT。请允许我解释,假设我们有一个复杂的对象Car。
Car
{
name:String;
creationDate:Date;
engineSize:String;
pastOwners:Array;
maintenenceOperations:Array
}
现在假设我的应用程序通过更改其名称来更新Car对象并将其发送到服务。我的问题是你如何处理对象的返回和更新应用程序端存在的Car对象。你是否为每个班级编写并编写样板?如果属性是延迟加载的,你如何处理?
在编写样板更新代码之前我已经完成了,如果有更好的方法,我只是不想继续重新发明方形轮。
请求更新方法示例的请求,所以这里是。它没有完整的所有方面,但它捕获了你有一个现有的Car对象的想法,并且你将新的服务对象传递给它以纠正差异。
[Bindable]
[RemoteClass("com.stackoverflow.example")]
public class Car
{
public var name:String;
public var engineSize:String;
public var maintenenceOperations:Array;
public var owner:Owner;
public function update( value:Car ):void
{
if( value != null )
{
this.name = value.name;
this.engineSize = value.engineSize;
if( this.owner != null )
{
this.owner.update( value );
}
}
}
}
答案 0 :(得分:2)
保持简单,大多数情况下不需要处理发送到要更新的服务的对象的返回。
如果服务在更新时修改了对象,请获取结果对象并替换孔flex对象,而不是检查其属性以进行更改。
答案 1 :(得分:1)
简短回答,您需要某种与该对象相关的ID(唯一)。当服务器返回时,您可以查看该对象ID的关联数组(Dictionary)并更新相应的属性。
答案很长,真的取决于你想要完成的事情以及如何实现。这个问题有很多答案,但是你可以找到哪种方法最适合你的具体情况。