是否可以在Angular控制器方法中对整个对象进行建模?

时间:2015-07-21 03:50:59

标签: javascript angularjs typescript

我在TypeScript中定义了以下接口:

interface Person {
    Id: number;
    FirstName: string;
    LastName: string;
    Age: number;
}

我有一个.html部分,其中包含HTML ng-submit="submit()"元素上的Angular form指令。以下是form

中的示例元素
<input id="FirstName" name="FirstName" type="text" class="form-control" ng-model="FirstName" placeholder="Enter First Name" />

我想要的是对以下submit调用中的对象参数进行以下对sumbit map表单值的调用:

$scope.submit = (person: MyApp.Models.Person) => {
  //Access person values
}

问题在于,在调用personsubmit()检查undefined<input>并且未填充。

我想知道是否可以自动使用form元素中的多个submit()表单值并绑定到{{1中的TypeScript已知的对象参数方法?

答案可能是完全可能,但我想知道之前我手动获取每个ng-model值并为Person实例提供水合作用在我的submit()函数中。

1 个答案:

答案 0 :(得分:1)

有可能。并且some say it is even a recommended strategy

不要直接在表单元素(person)上使用ng-model=FirstName对象的成员,而是使用点符号和人物对象(ng-model=person.FirstName)。例如,在您的范围对象上:

$scope.person: MyApp.Models.Person;

并在您的标记中(注意ng-model上的差异):

<input id="FirstName" name="FirstName" type="text" class="form-control" ng-model="person.FirstName" placeholder="Enter First Name" />

现在,当您拨打submit功能时,可以发送person型号

ng-submit="submit(person)"

,您的submit函数person参数可以访问表单中定义的person对象的所有成员。