我想做一个从 ajax URL 获取一些信息的函数。例如,在我的服务中,我将采用以下方法:
this.getFavColor = function(id)
{
return $http.get('/colors/get/' + id);
}
在我的控制器中,我会执行以下操作:
$scope.favColor = UserService.getFavColor( id );
然而问题是,$scope.favColor
在这种情况下将被分配一个承诺,并且将其实际更改为 ajax 返回的值的唯一方法是.success()
在承诺上设置一个回调并使用它来更新该值。
但是,如果我有很多必须通过 ajax 获取的东西,这很快就会变得很麻烦。有没有捷径,比如可能会这样做?
this.getFavColor = function(id, variableToChange)
{
return $http.get('/colors/get/' + id).success(function(jsonResult)
{
variableToChange = jsonResult.favColor;
});
}
然后在控制器中执行以下操作:
UserService.getFavColor( id, $scope.favColor );
这种方法真的有效吗?
注意:我已经考虑过$resource
,但我无法为我的 ajax 设置 REST api,所以请不要建议。