1. 我有一个 Truck 类,它有一个名为 AxleTypes 的集合,带有以下标记:
public class AxleType : Entity
{
public string Description { get; set; }
public string Type { get; set; }
}
2. 我的 Angular 表单包括以下内容(为了尽可能简短,我省略了表单的其他轴类型,并且我使用 $parent,因为这是一个模板,并且通过 ng-include 在主表单上):
<label for="frontAxles">Front Axle: </label>
<input ng-model="$parent.frontAxleType" type="hidden" value="Front">
<select ng-model="$parent.selectedFrontAxle" ng-options="axleType.Description for axleType in axleTypes">
<option value="" selected>Select Axle Type ..</option>
</select>
3.主窗体通过卡车控制器插入一辆新卡车,因此在卡车控制器中:
a. I instantiate an instance of the AxleTypes collection so the form is populates the select w/axle types.
b. I instantiate an instance of AxleType to pass the selected data from the form.
c. I pass the respective ng-models on the form to the AxleType variable.
d. I add that AxleType variable to the Truck's AxleTypes collection.
a: if ($scope.axleTypes == undefined || !($scope.axleTypes.length > 0))
{ $scope.axleTypes = API.GetAxleTypes(); }
b: $scope.axleType = {};
c: var frontAxle = $scope.axleType;
frontAxle.Description = $scope.selectedFrontAxle;
frontAxle.Type = $scope.frontAxleType;
d: newTruck.AxleTypes = [
angular.copy(frontAxle)
];
调试时这是最终结果:
为了尽可能地简短,我没有说明上面选择的第 2 轴类型。但是正如您所看到的,服务器选择了 2 个轴类型,但是每个 [Type & Description] 的两个属性都为空。有没有人有什么建议?
在 console.log 中,这两个值都是“未定义的”。
一个有趣的观察:
当我对 TruckCtrl 中的值进行硬编码时,一切正常:
frontAxle.Description = 'Some Front Value';
frontAxle.Type = 'Front';
rearAxle.Description = 'Some Rear Value';
rearAxle.Type = 'Rear';
newTruck.AxleTypes = [
angular.copy(frontAxle),
angular.copy(rearAxle)
];
这会导致有人认为问题出在轴模板上的 ng-model 上。但是,当我在服务器类 AxleType 中只有一个属性,即描述,而不是类型时,仅通过以下方式添加了选择的描述:
newTruck.AxleTypes = [
angular.copy($scope.selectedFrontAxle),
angular.copy($scope.selectedRearAxle)
];
传递的值。非常混乱。