我有看起来像这样的基本工厂:
mModule.factory('ajax_post', ['$http', function(_http) {
return{
init: function(jsonData){
var _promise= _http.post('src/php/data.ajax.php',
jsonData
,{
headers: {
'SOAPActions': 'http://schemas.microsoft.com/sharepoint/soap/UpdateListItems'
}
}
);
return _promise;
}
}]);
在这里我在我的控制器中调用它:
ajax_post.init($scope.jsonData)
.then(function (result) {
if(result.status == 200){
$scope.isDone = true;
....
}
},
function (error) {
alert(error.message);
});
我想在$scope
这里用于其他目的,但似乎我只能使用父级(又名$rootScope
)。我只有一个控制器。
所以这里有一些问题:
- 在工厂/服务中使用是一种好习惯
$scope
,还是应该只有控制器必须使用它(因为根据 MVC,我知道$scope
代表View
currentModel
)。 - 我可以
return
在工厂/服务中忽略,还是他们必须返回一些东西? - 我可以实施
promise.then(..)
到工厂/服务中吗(意思是:我可以将来自控制器的上述调用放入工厂/服务中)吗?或者是创建承诺并从控制器调用它们的唯一正确方法? - 为什么我不应该
service
在正文中实现上述逻辑controller
? - 我可以编写几个在一个服务中相互调用的方法吗?