繁体   English   中英

AngularJS和Javascript-减少锅炉代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM