rl = phone.images[0];
? });
? $scope.setImage = function(imageUrl) {
? ? $scope.mainImageUrl = imageUrl;
? }
}
//PhoneDetailCtrl.$inject = ['$scope', '$routeParams', 'Phone'];
?
注意到,在PhoneListCtrl里我们把:
$http.get('phones/phones.json').success(function(data) {
$scope.phones = data;
});
换成了:
$scope.phones = Phone.query();
我们通过这条简单的语句来查询所有的手机。
另一个非常需要注意的是,在上面的代码里面,PhoneListCtrl控制器调用Phone服务的方法时,我们并没有传递任何回调函数。尽管这看起来是同步返回的,其实根本就不是。同步返回的是一个“future”——一个对象,当XHR响应完成返回的时候会填充数据。鉴于AngularJS的数据绑定,我们可以使用future,并且把它绑定到我们的模板上。然后,当数据到达时,我们的视图会自动更新。
但有的时候,单单依赖future对象和数据绑定不足以满足我们的需求,所以在这些情况下,我们需要添加一个回调函数来处理服务器的响应。PhoneDetailCtrl控制器通过在一个回调函数中设置mainImageUrl就是一个解释。
通过这四篇对angular.js的入门讲解,我相信大家都angular有了初步的认识,接下来,我们将深入讲解angular.js。
希望你喜欢,并分享我的工作~带你走近AngularJS系列: