【发布时间】:2014-02-28 01:08:21
【问题描述】:
这似乎应该向我的范围提供数据,但事实并非如此,下面的代码是否有任何直接跳出错误的地方?
angular.module('Lunch.services', [])
.factory 'LunchMates', ($q, $http) ->
LunchMates =
getLunchMates: () ->
d = $q.defer();
$http.get('/lunchers').then (response, status) ->
if response.status == 200
d.resolve(response.data)
return d.promise
return LunchMates
angular.module('Lunch.controllers', [])
.controller('LunchCtrl', ($scope, LunchMates) ->
$scope.lunchers = LunchMates.getLunchMates()
)
【问题讨论】:
-
如果
response.status不是 200 怎么办?如果状态码不等于 200,你必须拒绝承诺... -
你不应该检查 then 方法中的状态码,then 方法接受两个函数,一个是成功函数,另一个是失败函数,成功一个你可以解决承诺,失败你可以失败承诺跨度>
-
返回的是什么。我认为在控制器中方法应该是
LunchMates.getLunchMates().then(function(data) { $scope.lunchers=data;});