为此我需要 2 个 ng-models 吗?

Do I need 2 ng-models for this?

我正在尝试创建一个表单,其中输入字段填充了数组中的值,但该表单被保存到另一个数组中。

例如,字段将从这个数组中填充

{
  "organisation": [
    {
      "OrgID": 1234,
      "OrgName": "Organisation one"
    },
    {
      "OrgID": 4567,
      "OrgName": "Organisation two"
    },
    {
      "OrgID": 9876,
      "OrgName": "Organisation three"
    }
  ]
}

我使用的输入框是这个

<input type="text" ng-model="formData.organisations[organisation.OrgID].name" id="{{organisation.OrgName}}" ng-value="organisation.OrgName"/>

所以这应该显示 'organisation' 数组中的组织名称,用户应该能够编辑该字段,并且值应该被推送到一个名为 'formData' 的新数组中。这在 Angular 中可行吗?

在您的控制器中初始化 formData.organisations 以从组织数组中获取您需要的所有信息,如下所示:

$scope.formData.organisations = angular.copy($scope.organisations);  

您将能够像这样借助 ngInit 实现此目的:

<input type="text" 
    ng-init="formData.organisations[organisation.OrgID].name = organisation.OrgName"
    ng-model="formData.organisations[organisation.OrgID].name" 
    id="{{organisation.OrgName}}" />

演示: http://plnkr.co/edit/zOXRE5K4Be5VY4samIVt?p=preview