AngularJS和Javascript - 减少boilerplace代码
AngularJS and Javascript - reduce boilerplace code
我意识到这可能只是一个常规的javascript/异步编程查询,但AngularJS是我最希望看到常见任务的样板减少的地方。
我通常在 AngularJS 控制器中具有这些类型的模式,其中数据的实际加载和存储委托给服务。
$scope.user = null;
$scope.init = function(){
// load user
profileService.loadUser(function(user){
$scope.apply(function(){
$scope.user = user;
});
});
};
这是一个相当冗长的"getter"。是否有更好的模式将数据从服务引入范围?
在您的服务中,如果您正在执行$http.get
(或任何其他谓词),它将返回一个 Future Object。未来对象是当前是承诺的对象,但最终将是一个对象。
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
将成为未来的对象。但它最终会分解成一个对象。
要了解更多信息,请查看以下链接并查找未来对象。
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何动态插入jquery代码
- 如何在php变量中嵌入JQuery代码
- 代码不会验证
- 如何从rails中的代码中删除新行( )
- Angularjs代码未在匿名函数中运行
- 如何做到这一点,使代码在不传递条件后执行函数
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 将 jQuery 代码添加到 Index.aspx 页面
- 为什么忽略了eval()代码中的语法错误
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- AngularJS和Javascript - 减少boilerplace代码