2013-06-11 24 views
5

Denetleyicilerin beyanıyla ilgili kurulmuş bir sözleşme var mı? (Veya herhangi bir modül seviyesi konfigürasyonu). İki yaklaşım arasında herhangi bir yararDenetleyicileri bildirmek için Açısal Düzenleme

var shoppingCartModule = angular.module('ShoppingCart',[]) 
shoppingCartModule.controller('CheckoutCtrl', function($scope) { ... }); 

angular.module('ShoppingCart').controller('CheckoutCtrl', function($scope) { ... }); 

vs var mıdır:

Ben kullanımda iki farklı yaklaşımlar gözlemledim? Ayrıca, tercih edilen (veya ortaya çıkan) bir kongre var mı?

Özellikle denetleyicilerin ve modüllerin bildirimlerinin birçok dosyaya yayılabileceği pek çok modül içeren önemsiz uygulamaların yararları ile ilgileniyorum. Şahsen

+0

Sadece tipik kullanılır verdi ikinci yöntemine değinmek istiyorum Örnekler için jfiddles ve Terry'nin cevabı gerçek bir uygulama için çok daha odaklı. –

cevap

6

ben aşağıdakileri yapın (sonra nedenler):

angular.module('myApp', []); 

angular.module('myApp').controller('myController', ['$dependency', 'anotherDependency',  
    function($dependency, anotherDependency) { 
    ... 
    } 
]); 

nedenleri:

    denemek
  • ve önlemek yedek olarak dize eşdeğerleriyle bağımlılıklar ilan güvenle küçültmek için izin verir
  • küresel kapsam Sizin kodunuz
  • Bu tutarlı, temiz ve tüm hikaye var. Örneğin. app.something ile app'un ne anlama geldiğini bilmiyorsunuz, angular.module ('myApp') ile bir şey 'ne olduğu oldukça açık.

Düzenleme: Sadece Bir süre önce çok bu konuda gördüğümüz serin videoyu hatırladım - http://www.egghead.io/video/tTihyXaz4Bo. John'un sitesini kontrol etmediyseniz, kesinlikle tavsiye ederim. Bağışladığı videolardan çok etkilendim ve sen de yapmalısın!

+0

Bu yöntemi de kullanıyorum. – finishingmove

+0

bu iyi görünüyor ama neden ilk başında angular.module bildiriyorsunuz? – bsiddiqui

+1

@bsiddiqui 'angular.module (' myApp ', [' ui.bootstrap ']); gibi bağımlılıkları enjekte ettiğine inanıyorum. –

2

Şahsen, bu şekilde biraz daha temiz bulmak:

angular. 
    module('myApp'). 
    controller('myController', ['$dependency', 'anotherDependency', myAppController]); 

function myAppController($dependency, anotherDependency) { 
    ... 
} 

Veya daha da iyisi:

var Controllers = {}; 

Controllers .someController = function myAppController($dependency, anotherDependency) { 
    ... 
} 

angular. 
    module('myApp'). 
    controller('myController', ['$dependency', 'anotherDependency', Controllers .someController]); 
İlgili konular