gpt4 book ai didi

angularjs - 如何从 Angular JS 中的另一个 Controller 成功回调调用 Controller 服务

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:07:21 32 4
gpt4 key购买 nike

我是 Angular 的新手,我仍然按照教程和资料来解决问题。我需要以下方面的帮助。我有一个看起来像这样的 Controller 。

app.controller('ScheduleBooking', ['$http', function($http){
var schedule = this;
schedule.databooking = [];

$http.post('../getbookings.json').
success(function(data, status, headers, config) {
schedule.databooking = data;
}).
error(function(data, status, headers, config) {
console.log('failed');
});

}]);

调用 $http 服务获取预订列表的 Controller ,在 HTML 中我用 ng-repeat 填充响应。

我有另一个这样的 Controller 。

app.controller('MakeBooking', ['$http', function($http){
var makeBooking = this;
//somecode here

$http.post('../MakeBooking.json?name=burhan').
success(function(data, status, headers, config) {
// I WANT TO REFRESH THE LIST OF BOOKINGS.
//I am looking a way to call scheduleBooking controller so that
//it can make http call and refresh the list of booking in html.
}).
error(function(data, status, headers, config) {
console.log('failed');
});

}]);

所以场景是:当页面加载时,客户应该看到他所做的所有预订。当他进行预订时,将调用 http 服务进行预订,在该服务成功回调中,我想做一些事情,以便它可以通过调用 Schedule booking controller 中定义的 http 服务来刷新预订列表。也许我可以用 BROADCAST 和 ON 方法来做到这一点。但我不确定。在我已经用 JQuery 编写的应用程序中发生了很多类似的事情。做这个的最好方式是什么?可能是我完全错了,还有其他更好的方法。你们有什么建议?

最佳答案

由于 ScheduleBooking 似乎除了调用端点之外并没有做更多的事情,所以最好的方法是将其转换为服务并将此服务注入(inject)到您需要调用特定方法(或从中获取数据)的每个 Controller 中,如下所示:

app.factory('ScheduleBookingSerice', ['$http', function($http){

var schedule = this;

schedule.getBookings = function(callback){$http.post('../getbookings.json').
success(function(data, status, headers, config) {
callback(data);
}).
error(function(data, status, headers, config) {
console.log('failed');
});
}
return schedule;
}]);


app.controller('MakeBooking', ['$http', 'ScheduleBookingSerice', function($http, ScheduleBookingSerice){
var makeBooking = this;
//somecode here

$http.post('../MakeBooking.json?name=burhan').
success(function(data, status, headers, config) {
ScheduleBookingSerice.getBookings(function success(data){
//operate on your data here
});
}).
error(function(data, status, headers, config) {
console.log('failed');
});

}]);

关于angularjs - 如何从 Angular JS 中的另一个 Controller 成功回调调用 Controller 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29734303/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com