1、service中異步獲取數據實例
angular.module('starter.services', []) .factory('Chats', function($http,$q) {//定義Chats的service return { all: function() {//all方法異步獲取數據 var deferred=$q.defer(); //定義deferred var promise=deferred.promise;//定義promise $http.get('http://localhost:3000/lists').success(function(data,status,headers,config){ //執行deferred.resolve方法,將返回的data傳入作為參數 deferred.resolve(data); }) //返回promise return promise; } }; });
2、controller中執行Chats的all方法,並將返回的數據賦值給$scope的items,這里的result就是service的all方法中異步返回的數據
angular.module('starter.controllers', []) .controller('ChatsCtrl', function($scope, Chats) { Chats.all().then(function(result){ $scope.items = result; },function(){ console.log('goodsService get error'); }); })