Angularjs 表单控制器从其管理的表单中公开解析数据的最佳方法?
我来自Java背景,正在学习Angular 1.5.8+类型脚本 我有一个表单控制器,它处理表单中的原始字段并生成数据结构。例如,它可能会做这样的事情:获取一个原始地址,将其解析为标准格式,然后查找纬度和经度 我试图找出向应用程序的其余部分公开已解释表单数据的最佳方法,并想看看其中一种是否是“可接受的”标准方法 我偏爱的方法是创建两个类,一个表示表单中完全解析的数据,另一个表示该数据的部分子集 对数据感兴趣的调用者将在我的控制器上调用GetCompletedData或GetCompletedData,这取决于他们是想要实时查看还是完整数据(如果可用)。关于实际表单字段及其值的详细信息不会在控制器外部公开 我考虑这样做的另一种方法是向控制器添加一系列方法,用于访问处理后的每一位数据,每个方法都有一个可能的返回 方法1:Angularjs 表单控制器从其管理的表单中公开解析数据的最佳方法?,angularjs,typescript,angularjs-controller,angularjs-forms,Angularjs,Typescript,Angularjs Controller,Angularjs Forms,我来自Java背景,正在学习Angular 1.5.8+类型脚本 我有一个表单控制器,它处理表单中的原始字段并生成数据结构。例如,它可能会做这样的事情:获取一个原始地址,将其解析为标准格式,然后查找纬度和经度 我试图找出向应用程序的其余部分公开已解释表单数据的最佳方法,并想看看其中一种是否是“可接受的”标准方法 我偏爱的方法是创建两个类,一个表示表单中完全解析的数据,另一个表示该数据的部分子集 对数据感兴趣的调用者将在我的控制器上调用GetCompletedData或GetCompletedDa
类MyFormController{
地址():可能={
如果(form.street.length>0){
just(新地址(form.street、form.city、form.state、findLatAndLong(…));
}else{nothing()}
}
street():string={theForm.street}
}
方法2:
class completedparseddata{
地址:地址;
名字:字符串;
也许吧;
lastName:string;
}
类不完全解析数据{
地址:我可能看不到将此迁移到代码审阅的方法。我应该再次提交问题吗?(我不希望因提交相同内容而被标记为2x。)我看不到将此迁移到代码审阅的方法。我应该再次提交问题吗?(我不希望因提交相同内容而被标记为2x。)
class MyFormController {
address() : Maybe<Address> = {
if (theForm.street.length > 0) {
just(new Address(theForm.street, theForm.city, theForm.state, findLatAndLong(...)));
} else { nothing() }
}
street() : string = { theForm.street}
}
class CompleteParsedData {
address: Address;
firstName: string;
middleInitial: Maybe<string>;
lastName: string;
}
class IncompleteParsedData {
address: Maybe<Address;
firstName: Maybe<string>;
middleInitial: Maybe<string>;
lastName: Maybe<string>;
}
class MyFormController {
getParsedData: Try[CompleteParsedData]; //return complete parsed data or validation error explaining what's missing
getIncompleteData: IncompleteParsedData; //return as much of the parsed data as we can infer from current raw data
}