我有一个使用ASP.net Web API后端的angularjs前端。我在选择列表中使用以下代码:
<select id="package" class="form-control" ng-options="package as package.Name for package in request.PackageServices.Packages" ng-model="request.Package">
<option value="">No Package</option>
</select>
选择列表正确填充并按预期输出包。
选择更改后,request.Package项会使用所选包正确更新。
将请求对象发布到Web API restful服务后,它正确包含正确的包。
当web api将restful响应发送回客户端时,请求对象包含正确的包。
问题在于,在调用API服务并且API服务响应发回新请求对象之后,选择列表将丢失正确的选定值。
以下是saveRequest方法的样子:
$scope.saveRequest = function (request) {
console.log(request);
//the request.Package contains the correct Package here!
applicantLinkData.create(request)
.$promise.then(
function (resp) {
$scope.request = resp.Request;
console.log(resp.Request);
// the resp.Request.Package contains the right package here!
},
function (resp) {
//failure... do something
}
);
};
我不知道如何修复它,但基本上在调用saveRequest方法之后,html中的选择列表会重置为&#34; No Package&#34;而不是保留正确选择的包。
答案 0 :(得分:2)
您有两个选择:
ng-options
中使用跟踪ID ,而不是按对象引用进行跟踪。 ng-options="package as package.Name for package in request.PackageServices.Packages track by package.Id"