Angular相当新鲜,我想问的是哪个实践在
之间被认为更好控制器
tween.to(ball.scale, 2, {x: 10});
服务
factory.method()
.success(function (data) {
// do stuff
})
.error(function (data) {
// throw error
});
和
控制器
return {
method: function() {
return $http.get(url);
}
};
服务
myValue = factory.method();
请注意,我可能完全离开这里,第二种方法可能不起作用(还没有测试过),但只是想出于好奇而问。如果有更好或更有效的做法我会很高兴听到他们,非常感谢你们。
答案 0 :(得分:1)
我通常使用第一种解决方案,我可以确认它的效果非常好。除此之外,例如它允许您:
这就是说,此外,您可以两者,例如Restangular does与" 增强型承诺"。使用then
或$object
或附加的任何内容返回$return
能够使用的内容将允许您:
使用承诺
myService.myMethod.then(
function(data) {//Success
//Manipulate data
$scope.whatever = data;
},
function(err) {
//Handle error
}
);
或只是$return
,当承诺结算时>>将会填充
$scope.whatever = myService.myMethod().$return;
//Notice that you just can't handle rejection
使用角度$q
服务的服务示例:
var deferred = $q.defer();
//Create $return reference
deferred.promise.$return = [];
deferred.promise.then(function(data) {
//replace $return elements with data elements, keeping reference
angular.copy(data, deferred.promise.$return);
});
setTimeout(function() {
deferred.resolve([
'White',
'Pinkman'
]);
}, 1000);
return deferred.promise;
Haven未对此代码进行测试,但您明白了