[英]AngularJS and Javascript - reduce boilerplace code
我意识到这可能只是一个常规的javascript /异步编程查询,但是AngularJS是我最想看到的减少常见任务样板的地方。
我通常在AngularJS控制器中使用这些类型的模式,其中实际的数据加载和存储委托给Service。
$scope.user = null;
$scope.init = function(){
// load user
profileService.loadUser(function(user){
$scope.apply(function(){
$scope.user = user;
});
});
};
这是一个冗长的“ getter”。 是否有更好的模式将数据从服务中获取到范围内?
在您的服务中,如果您正在执行$http.get
(或任何其他动词),它将返回Future对象 。 将来的对象是当前是一个承诺的对象,但最终将是一个对象。
app.factory('profileService', function(){
return {
loadUser: function(){
return $http.get('http://www.example.com');
}
};
});
这将返回将来的对象。 因此,在您的代码中,您可以执行以下操作:
$scope.init = function(){
$scope.user = profileService.loadUser();
//no $scope.$apply necessary, as you are still inside a digest cycle.
};
在短期内, $scope.user
将成为将来的对象。 但是它最终将分解为一个对象。
要了解有关此内容的更多信息,请查看以下LINK并查找Future Objects 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.