建议的方法是什么?
1
factory.updater = function(varObjToBeUpdated){
$http.post('/url', {})
.success(function(data){
for (data_field in data)
varObjToBeUpdated[data_field] = data[data_field];
});
}
...
myFactory.updater($scope.varObjToBeUpdated);
或2。,
myFactory.updater().success(function(data, ..){
$scope.varObjToBeUpdated = data;
});
...
factory.updater = function(){
return $http.post('/url', {});
}
将参考范围变量传递给工厂是否可以?我一直认为工厂是提供数据。
第二种方法有什么问题(如果不太可接受的话)?
答案 0 :(得分:3)
我更喜欢第二种方法,因为这允许您在需要跨多个控制器时注入服务。使用.then
继续承诺模式:
myFactory.updater().then(function(data, ..){
$scope.varObjToBeUpdated = data;
});
app.factory('myFactor', function($http) {
return {
updater: function() {
return $http({'/url',}).then(function(result) {
return result.data;
});
}
}
});