2013-04-01 11 views
24

Qual è la convenzione in AngularJS per i provider di prefissi con $? Devo prefissi tutti i servizi personalizzati nel mio codice?

Sembra come tutte le cose che vengono con i servizi si sono prefissati angolari, per esempio $http. I controller, tuttavia, non hanno il prefisso $ nella maggior parte degli articoli. Inoltre, tutto il codice angolare viene fornito con i servizi denominati in camelCase, tuttavia ho anche visto PascalCase in molti blog online. Qual è la convention?

+1

http://stackoverflow.com/q/20802798/276648 punti di https://github.com/mgechev/angularjs-style-guide – user276648

+0

E 'confuso. Credo che non ci sia CamelCase vs CamelCase. C'è solo CamelCase e PascalCase https://msdn.microsoft.com/en-us/library/x2dbyw72(v=vs.71).aspx – Lombas

risposta

19

La documentazione affermano questa convenzione per i servizi interni, ma anche stato non si dovrebbe fare per i propri servizi per ridurre le collisioni di denominazione.

http://docs.angularjs.org/guide/concepts#angular_namespace

Inoltre, per quanto riguarda camelCase, i documenti dicono da utilizzare camelCase.

angolare utilizza nome-con-trattini per i nomi di attributi e camelCase per il nome della direttiva corrispondente

http://docs.angularjs.org/tutorial/step_00

+3

Dice per le direttive, ma che ne dici di servizi, fabbriche e cose del genere? – glebm

+4

Nei documenti, usano CamelCase per la maggior parte delle cose (eccetto Controller per qualsiasi motivo) quindi direi che è la strada da percorrere. –

+8

Sto indovinando perché i controllori sono pensati come "classi" nel senso che sono "aggiornati" per ogni uso, mentre i servizi sono singleton e in genere si prevede che restituiscano una "istanza". Tuttavia, nulla impedisce di restituire una funzione di costruzione come servizio, quindi in tal caso potrebbe essere opportuno utilizzare PascalCase per differenziarlo. –

20
  1. Uso PascalCase per i controller e per le funzioni che restituiscono una funzione di costruzione questo dovrebbe essere aggiornato, ad es var user = new User(). I controller in Angolare sono visualizzati come funzioni di costruzione dell'ambito, quindi PascalCase.

  2. controllori avrebbero dovuto Controller aggiunto nel loro nome. Vedi http://demisx.github.io/angularjs/2014/09/14/angular-what-goes-where.html per gli esempi di denominazione.

  3. Usa camelCase per tutto il resto.

questi seguono importanti convenzioni JavaScript che Dev in tutto il mondo ci sono abituato.

+0

Aggiungi 'Ctrl' alla fine dei controller o no? –

+0

Buona domanda, Dan. Aggiungi 'Controller' alla fine del nome del controller. Non abbreviare. Ho aggiornato la mia risposta. Si noti inoltre che i controller standalone saranno disattivati ​​in Angular 2.0 in favore di Web Components. – demisx

-1
We can filter Text in CamelCase using following code 
app.filter('camelCase', function(){ 
      var camelCaseFilter = function(input){ 
        var words = input.split(' '); 
        for (var i = 0, len = words.length; i < len; i++) 
         words[i] = words[i].charAt(0).toUpperCase() + words[i].slice(1); 
        return words.join(' '); 
       }; 
       return camelCaseFilter; 
     }); 
Problemi correlati