2013-06-03 20 views
8

AngularJS'de yeniyim, ve - bu oldukça karmaşık ve yaklaşım benim için yeni olduğu için biraz kafam karıştı.AngularJS: Genel menü sağlayıcı, servis veya rootScope için doğru yer?

"Klasik" arka plandan (sunucu tarafı şablon dilleri [Yii, django, Smarty gibi] + bazı jQuery öğelerini biraz dinamik yapmak için) yapıyorum.

ı bir menü çubuğu (Önyükleme YönÇubuğu'nu veya başka bir şey) var diyelim - Ana sayfada dışında içeriği yaşayan bir element, örneğin:

<body> 
    <div id="menubar"> 
    ... <!-- menu content --> 
    </div> 
    <div class="container"> 
    <div ng-view></div> 
    </div> 
</body> 

Şimdi İsterdim Menüyü biraz dinamik yapmak için, yani denetleyicinin içindeki bazı menü öğelerini ekleyin veya kaldırın. Sunucu kenar çerçevelerini & örneğin Yii gibi şablon oluşturma sistemlerini kullanarak, $menuItems değişkenine sahip bir BaseController sınıfına sahip olmak ve menuBar her seferinde oluştururken, tüm denetleyicilerin öğeleri değiştirebilmeleri için BaseController öğesinden devralmaları gerekir.

Ayrıca, menü çubuğunun içinde bulunan searchForm'u işleyen bir işleve ihtiyacım var. Nerede yaşamalı?

Böyle bir şey için açısal yol nedir? Şimdiye kadar özel service veya $rootScope'u genişletmeyi düşünüyorum.

+1

Örnek uygulama gördünüz mü? https://github.com/IgorMinar/foodme – vittore

+0

@vittore Teşekkür ederim, bunu bilmiyordum. Ng-denetleyicisi ile birlikte ng-denetleyicisini kullanabileceğimin farkında değildim :) Bazı paylaşılan servislerle birleştirmek bir numara yapmalı. Yorum yerine cevap ver ve cevap olarak işaretleyeceğim. – migajek

+0

[açısal modülde global iletişim: event bus veya mediator pattern/service] olası bir kopyası (http://stackoverflow.com/questions/27356299/global-communication-in-angular-module-event-bus-or-mediator- desen-hizmet) –

cevap

9

GÜNCELLEME: Ben angularjs benimseyerek ikinci adımı dediğiniz gibi John Papa's ng-demoes ve style-guide bakmak için teşvik edecek.

Tam uygulama göstermek için son zamanlarda yayınlanan angular.js ekibine göz atın. açısal aşağıdaki özelliklere

dikkat size

ben olması gidiyor direktiflerde '=', '&', '@' kapsam bağlamaları directive

  • ait templateUrl özelliğini inanıyoruz bir Bir hizmetin bir kombinasyonuna sahip olmanın iyi bir yaklaşımı ve tarif ettiğiniz şekilde menüyü oluşturmak için bir yönerge.

  • İlgili konular