Ho un servizio in questo modo:il servizio angularjs non è una funzione
app.service('Utilities', function() {
this.sum = function(items, prop) {
var count, total;
total = 0;
count = 0;
if (items === null) {
total = 0;
}
while (count < items.length) {
total += items[count][prop] * 1 || 0;
count++;
}
return total;
};
});
e un controller in questo modo:
app.controller('writeCtrl', function($scope, Utilities, students) {
$scope.students = students;
$scope.total_age = Utilities.sum($scope.students, 'age');
});
E io continuo a ricevere l'errore
Typerror: Utilities.sum is not a function
Quale è confuso perché circa una dozzina di altre funzioni sotto il servizio di utilità sta funzionando bene. Qual è la causa del problema e come posso far funzionare la funzione?
Modifica Actual versione CoffeeScript
app.service 'Utilities', ->
@sum = (items, prop) ->
total = 0
count = 0
if items == null
total = 0
while count < items.length
total += (items[count][prop]*1 || 0)
count++
return total
app.controller 'writeCtrl', ($scope, Utilities, students) ->
$scope.students = students
$scope.total_age = Utilities.sum($scope.students, 'age')
Soluzione:
funzioni CoffeeScript bisogno di un ritorno:
App.service 'Utilities', ->
.....
return
È questo il rientro corretto del tuo codice? CoffeeScript è uno spazio bianco significativo e sembrerebbe che tu abbia un errore di indentazione sulla riga 3 –
@DanPantry Ciao Dan, il rientro deve essere incasinato quando lo ho incollato su StackOverflow, ma sì il rientro nel mio codice attuale è corretto. –