Ich versuche Jhon Papa's Angular 1 Style Guide zu verwenden, um eine Fabrik in Angularjs zu erstellen. Das Problem ist, dass, wenn ich eine Funktion in ein Objekt kapsle und dann dieses Objekt zurückgebe, die Funktion nicht aufgerufen wird.Jhon Papa Winkelstil guide Factory - Funktion im Objekt nicht ausgeführt
Zum Beispiel
Funktioniert nicht
angular
.module('movieCore')
.factory('PopularMovies', factory);
factory.$inject = ['$resource'];
function factory($resource) {
var service = {
popularMovies: popularMovies
};
return service;
function popularMovies() {
var token = 'teddybear'; // TBC
return $resource('popular/:movieId', { movieId: '@id' }, {
update: {
method: 'PUT',
headers: { 'authToken': token }
},
get: {
method: 'GET',
headers: { 'authToken': token }
},
query: {
method: 'GET',
headers: { 'authToken': token }
},
save: {
method: 'POST',
headers: { 'authToken': token }
},
remove: {
method: 'DELETE',
headers: { 'authToken': token }
}
});
}
}
Wenn ich das Objekt zu entfernen, die die Funktion hält es funktioniert.
angular
.module('movieCore')
.factory('PopularMovies', factory);
factory.$inject = ['$resource'];
function factory($resource) {
var token = 'teddybear'; // TBC
console.log('hey there');
return $resource('popular/:movieId', { movieId: '@id' }, {
update: {
method: 'PUT',
headers: { 'authToken': token }
},
get: {
method: 'GET',
headers: { 'authToken': token }
},
query: {
method: 'GET',
headers: { 'authToken': token }
},
save: {
method: 'POST',
headers: { 'authToken': token }
},
remove: {
method: 'DELETE',
headers: { 'authToken': token }
}
});
};
Ich glaube nicht, dass das das Problem ist, Funktionen * in Javascript gehißt *. – pietrovismara
@Cuz hat Recht. Das ist nicht das Problem. Das Problem ist, dass die Funktion die Ressource zurückgibt, aber sie wird nie aufgerufen –
In der Tat, Sie haben Recht. Ich war verwirrt, Var als Funktion zu deklarieren, z. var popularMovies = function ... In diesem Fall funktioniert das Deklarieren der Variablen nach der Rückgabe nicht. – fikkatra