我正在使用
我将值(位置ID)绑定到
我的代码:
ng-options
生成一个选择标记,其选项为位置。标签是位置名称,值是位置ID(在数据库中)。我将值(位置ID)绑定到
ng-model
属性上,但我还想将标签(位置名称)绑定到不同的ng-model
属性上。(我需要分离id
字段,因为这将被POST到期望特定属性的服务器。)在Angular中,最好的方法是什么?我的代码:
<div ng-app="app"><div ng-controller="edit">
<select ng-model="purchase.pickUpLocationId" ng-options="loc.id as loc.name for loc in purchase.availableLocations"></select>
<!-- This is the model not yet bound: -->
<p>You have selected {{ purchase.pickUpLocationName }}</p>
</div></div>
var app = angular.module('app', []);
app.controller('edit', ['$scope', function($scope) {
$scope.purchase = {
pickUpLocationId: 30,
availableLocations: [
{id: 20, name: "Charleston, SC"},
{id: 30, name: "Atlanta, GA"},
{id: 40, name: "Richmond, VA"},
]
};
}]);
$scope.purchase.selected = {id: 30, name: "Atlanta, GA" };
,它似乎并没有使用控制器中设置的默认位置。应该如何处理? - eirikir$scope.selected = $scope.purchase.availableLocations[1];
的内容。 - scniropickUpLocationId
字段将purchase
对象 GET 和 POST 到后端服务器。我需要循环遍历availableLocations
来查找匹配的对象吗?还是我可以将pickUpLocationId
绑定到selected.id
上?或者 Angular 约定规定将此问题抽象为单独的模块,例如数据序列化模块? - eirikirhttp
转换的一个好选择。如果需要更改对象属性名称,请向下滚动到每个请求的转换部分。 - scniro