2013-04-01 8 views
24

Co to jest konwencja w AngularJS dla prefiksowania dostawców z $? Czy powinienem poprzedzać wszystkie usługi niestandardowe moim własnym kodem?

Wygląda na to, że wszystkie rzeczy, które mają kątowy, mają wstępnie ustawione usługi, np. $http. Kontrolery nie są jednak w większości artykułów poprzedzone prefiksem $. Ponadto, wszystkie kody kątowe są dostarczane z usługami o nazwie pod numerami camelCase, ale widziałem też PascalCase w wielu blogach online. Który to konwencja?

+1

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

+0

To mylące. Wierzę, że nie ma camelCase vs CamelCase. Jest tylko camelCase i PascalCase https://msdn.microsoft.com/en-us/library/x2dbyw72(v=vs.71).aspx – Lombas

Odpowiedz

19

Dokumenty określają tę konwencję dla usług wewnętrznych, ale także nie należy jej wykonywać dla własnych usług w celu ograniczenia kolizji nazw.

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

Ponadto, w odniesieniu CamelCase, docs powiedzieć do korzystania CamelCase.

kątowe zastosowania Nazwa-z kreskami w nazwach atrybutów i camelCase do odpowiednią nazwę dyrektywy

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

+3

Mówi o dyrektywach, ale co z usługami, fabrykami i tym podobnymi? – glebm

+4

W dokumentach używają one camelCase dla większości rzeczy (z wyjątkiem kontrolerów z jakiegokolwiek powodu), więc powiedziałbym, że jest to droga. –

+8

Zgaduję, ponieważ kontrolery są uważane za "klasy" w tym sensie, że są "nowe" do każdego użycia, usługi są pojedyncze i zwykle oczekuje się, że zwrócą "instancję". Jednak nic nie stoi na przeszkodzie, aby zwrócić funkcję konstruktora jako usługę, więc w takim przypadku może być użyteczne użycie PascalCase do jej rozróżnienia. –

20
  1. Zastosowanie PascalCase kontrolerów i funkcji, które zwracają konstruktor to powinno być nowe, np var user = new User(). Kontrolery w Angular są postrzegane jako funkcje konstruktora zakresu - w ten sposób PascalCase.

  2. Kontrolery powinny mieć Controller dołączone w ich nazwie. Zobacz http://demisx.github.io/angularjs/2014/09/14/angular-what-goes-where.html, aby znaleźć przykłady.

  3. Używaj camelCase do wszystkiego innego.

Podążają za ważnymi konwencjami Javascript, do których przyzwyczajenie się programista na całym świecie.

+0

Dodać 'Ctrl' na końcu kontrolerów czy nie? –

+0

Dobre pytanie, Dan. Dodaj 'Controller' na końcu nazwy kontrolera. Nie skracać. Zaktualizowałem swoją odpowiedź. Zauważ też, że samodzielne kontrolery znikną w Angular 2.0 na rzecz 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; 
     });