Javascript $resource未定义,带有$promise
我已经在这个问题上纠缠了很长一段时间,无法理解为什么没有返回值。我正在使用AngularJavascript $resource未定义,带有$promise,javascript,angularjs,Javascript,Angularjs,我已经在这个问题上纠缠了很长一段时间,无法理解为什么没有返回值。我正在使用Angular$resource向API发出GET请求 我的$resource工厂如下所示: .factory("Bookings", function ($resource) { return $resource("www.example/bookings_on_date/:day", {}); }) function getBookings(day) { return Bookings.get({"d
$resource
向API发出GET请求
我的$resource工厂如下所示:
.factory("Bookings", function ($resource) {
return $resource("www.example/bookings_on_date/:day", {});
})
function getBookings(day) {
return Bookings.get({"day": day}).$promise.then(function(data) {
return data.total;
});
}
getBookings(TODAY).then(function(total) {
$scope.todaysBookings = total;
});
getBookings(TOMORROW).then(function(total) {
$scope.tomorrowsBookings = total;
});
我曾试图履行承诺,但无法正确履行
function getBookings(day){
return Bookings.get({"day": day}).$promise.then(function(data) {
console.log(data.total)
return data.total;
});
}
$scope.todaysBookings = getBookings(TODAY);
$scope.tomorrowsBookings = getBookings(TOMORROW);
当我在控制台中查看console.log($scope.todaysBookings)
或$scope.tomorrowBookings
时,它返回未定义
我也尝试过这一切,但不幸的是没有任何运气。我认为应该是这样的:
.factory("Bookings", function ($resource) {
return $resource("www.example/bookings_on_date/:day", {});
})
function getBookings(day) {
return Bookings.get({"day": day}).$promise.then(function(data) {
return data.total;
});
}
getBookings(TODAY).then(function(total) {
$scope.todaysBookings = total;
});
getBookings(TOMORROW).then(function(total) {
$scope.tomorrowsBookings = total;
});
更新:我认为下一个代码样式可以帮助您防止下一个扩展方法问题:
function getBookings(args) {
return Bookings.get(args).$promise;
}
getBookings({"day": TODAY}).then(function(data) {
$scope.todaysBookings = data.total;
});
getBookings({"day": TOMORROW}).then(function(data) {
$scope.tomorrowsBookings = data.total;
});
这里有一点好处:
- 将对象传递到函数可以帮助您轻松地传递不同的 方法中的参数和参数非常接近方法调用(a 有点容易阅读)李>
- 从函数返回完整响应 可以帮助您处理不同的数据(方法可以重播 不同的回答取决于论点,但这不是好的做法 在这种情况下)李>
在
预订之前,您缺少返回
。获取
。JavaScript函数没有返回值returnundefined
。您需要阅读Ping me并让我知道它是否解决了您的问题,以便我们可以作为副本关闭,或者如果它没有-编辑,我们将看到我们可以做些什么-愉快的编码。就像您刚才做的那样,在我的名字前面写@
,您能解决您的问题吗?