Maison > Questions et réponses > le corps du texte
Code service :
app.service('getTicketList', function($q, $http){
this.data = {};
this.getData = function(id){
var deferred = $q.defer();
var path='ticket.action?method:projectTickets';
if(id)
path+='&projectId='+id.toString();
$http.get(path).then(function(d){
//success
this.data = d;
deferred.resolve(d);
},function(){
//failure
deferred.reject(d);
});
}
});
code du contrôleur :
app.controller('projectController', function($scope,getTicketList) {
$scope.tickets=getTicketList.getData($scope.projectId).data.tickets;
});
Il y a un problème avec le code du contrôleur. Je ne parviens pas à obtenir les données en utilisant getTicketList.data, c'est {}. Et je ne sais pas comment transmettre les paramètres. . . .
巴扎黑2017-05-15 16:52:58
javascript
app.service('getTicketList', function ($q, $http) { var data = {}; return { getData: function (id) { var deferred = $q.defer(); var path = 'ticket.action?method:projectTickets'; if (id) path += '&projectId=' + id.toString(); var promise = $http.get(path).then(function (response) { return response; }, function (response) { return response }); return promise; } } });
javascript
getTicketList.getData($scope.projectId).then( function (res) { $scope.tickets = res.tickets }, function (rej) { // error handler } );
漂亮男人2017-05-15 16:52:58
Cette façon de passer les paramètres est erronée. Je ne l'ai jamais utilisée comme ça. Il y a un projet ici Trouvez le contrôleur.service correspondant et jetez un œil
https://github.com/LittleDouBi/community<. 🎜>
过去多啦不再A梦2017-05-15 16:52:58
Vous devez utiliser le mode promesse :
app.service('getTicketList', function ($q, $http) {
this.data = {};
this.getData = function (id) {
var deferred = $q.defer();
var path = 'ticket.action?method:projectTickets';
if (id) {
path += '&projectId=' + id.toString();
}
return $http.get(path).then(function (d) {
this.data = d;
return $q.when(d);
}, function (d) {
return $q.reject(d);
});
}
});
app.controller('projectController', function ($scope, getTicketList) {
getTicketList.getData($scope.projectId).then(function (res) {
$scope.tickets = res.tickets
}, function (rej) {
// error handler
});
});