Ho questo HTML:AngularJS, questo modo di utilizzare il servizio è buono?
<p>Hello {{name}}</p>
e il controllore è:
function myCtrl(scope, service) {
scope.name = service.getUsername(); // service.getUsername() return "World!"
}
myCtrl.$inject = ['$scope', 'originalService'];
Il servizio funziona bene, quindi non mi incollare il codice qui ... In questo caso il risultato è "! Ciao mondo" ho cambiato il codice HTML in questo modo:
<p>Hello {{service.getUsername()}}</p>
Ma questo non funziona.
ho cambiato il controllore:
function myCtrl(scope, service) {
scope.ser = service;
}
myCtrl.$inject = ['$scope', 'originalService'];
e poi il codice HTML
<p>Hello {{ser.getUsername();}}</p>
Questo funziona!
Quindi la mia domanda è:
È questo l'unico modo per utilizzare le funzioni di un servizio direttamente nel codice HTML, o mi manca qualcosa?
Buona risposta. Eviterei comunque di aggiungere l'intero oggetto servizio all'ambito, se non si tratta di un tipo di servizio di visualizzazione e il modello richiede tutte le funzionalità del servizio. In genere, si desidera aggiungere solo i dati/le funzioni sull'ambito di cui il modello necessita e nulla più. –
@AndersEkdahl Sono d'accordo, probabilmente non si vuole usare questo metodo molto spesso. Ma immagino che tutto dipenda dal servizio. Sto solo presentando le opzioni qui, ci sono diversi compromessi da considerare. –
@ pkozlowski.opensource ringrazia per la risposta – Bruno