0

我有一个数据服务说:

myApp.factory('locationsData', function ($resource) {


return $resource('/api/Location/:id', { id: '@id' }, { update: { method: 'PUT' } });});

然后,我使用这些位置在我的视图中填充下拉列表:

<select ng-model="locationId" ng-options="item.LocationId as item.LocationName for item  in locations"></select>

我想在我的控制器中设置下拉菜单的初始值:

$scope.locationId = 8;

这不起作用,我认为是因为 $resource 的异步性质——它还没有列表,所以我无法设置它。

我知道 $q 旨在解决这个问题,但不确定如何创建承诺,并设置

$scope.locationId = 8;

完成后

我已经阅读了 $q 和 $resource 文档,但是我还没有看到一个很好的代码示例,说明如何像我一样进行简单的 get 操作,然后在 get 承诺完成后执行一些功能/操作。

谢谢。

4

1 回答 1

0

我相信你会在控制器的某个地方做

$scope.locations=locationsData.query();

query 或 get 方法可以接受成功和错误函数的参数。就像是

locationsData.query(function(data){
});

所以你应该设置

$scope.locationId = 8;

在查询的成功函数里面。

于 2013-06-23T14:03:31.880 回答