2013-04-01 29 views
24

Quy ước trong AngularJS cho các nhà cung cấp tiền tố có $ là gì? Tôi có nên thêm tiền tố cho tất cả các dịch vụ tùy chỉnh trong mã của riêng mình không?

Có vẻ như tất cả mọi thứ đi kèm với các dịch vụ có tiền tố đều có tiền tố, ví dụ: $http. Tuy nhiên, bộ điều khiển không có tiền tố là $ trong hầu hết các bài viết. Ngoài ra, tất cả mã góc đều đi kèm với các dịch vụ có tên trong camelCase, tuy nhiên tôi cũng đã thấy PascalCase trong nhiều blog trực tuyến. Cái nào là quy ước?

+1

http://stackoverflow.com/q/20802798/276648 trỏ đến https://github.com/mgechev/angularjs-style-guide – user276648

+0

Thật khó hiểu. Tôi tin rằng không có camelCase vs CamelCase. Chỉ có camelCase và PascalCase https://msdn.microsoft.com/en-us/library/x2dbyw72(v=vs.71).aspx – Lombas

Trả lời

19

Tài liệu nêu rõ quy ước này cho các dịch vụ nội bộ, nhưng cũng cho biết bạn không nên làm điều đó cho các dịch vụ của riêng bạn để giảm xung đột đặt tên.

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

Ngoài ra, liên quan đến camelCase, các tài liệu nói để sử dụng camelCase.

góc sử dụng tên-với-dấu gạch ngang cho tên thuộc tính và camelCase cho tên chỉ thị tương ứng

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

+3

Nó nói cho các chỉ thị, nhưng làm thế nào về các dịch vụ và các nhà máy và các công cụ như thế? – glebm

+4

Trong tài liệu, họ sử dụng camelCase cho hầu hết các công cụ (ngoại trừ Bộ điều khiển vì lý do gì) vì vậy tôi sẽ nói đó là cách để đi. –

+8

Tôi đoán vì các bộ điều khiển được coi là "các lớp" theo nghĩa chúng được "làm mới" cho mỗi lần sử dụng, các dịch vụ wheras là các bộ đơn và thường được trả về một "thể hiện". Tuy nhiên, không có gì ngăn cản bạn trả về hàm xây dựng như một dịch vụ vì vậy trong trường hợp đó, có thể có ý nghĩa khi sử dụng PascalCase để phân biệt nó. –

20
  1. Sử dụng PascalCase cho bộ điều khiển và cho các chức năng mà trả về một hàm constructor đó là nghĩa vụ phải được mới, ví dụ var user = new User(). Các bộ điều khiển trong Góc được xem như các hàm xây dựng phạm vi - do đó PascalCase.

  2. Bộ điều khiển phải có Controller được thêm vào tên của chúng. Xem http://demisx.github.io/angularjs/2014/09/14/angular-what-goes-where.html để biết các ví dụ đặt tên.

  3. Sử dụng camelCase cho mọi thứ khác.

Các quy ước Javascript quan trọng sau này trên thế giới đã quen thuộc.

+0

Thêm 'Ctrl' vào cuối bộ điều khiển hay không? –

+0

Câu hỏi hay, Dan. Thêm 'Controller' vào cuối tên bộ điều khiển. Không viết tắt. Tôi đã cập nhật câu trả lời của mình. Cũng lưu ý rằng, các bộ điều khiển độc lập sẽ biến mất trong Angular 2.0 có lợi cho 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; 
     });