2016-01-22 24 views
9

AngularAMD uygulamasına sahibim ve o uygulamadaki (RequireJS anlamında) bir yönerge sahibim (bu direktifin "yaşadığı" açısal modül).Yolları olmadan AngularAMD'yi nasıl kullanabilirim

Yönlendirme kullanırsam ve yönlendirmeyi yönlendirilmiş görünümde kullanırsam, yönerge içeren dosyaya bağlı bir controllerUrl içeren bir yol vardır.

Yaparsam değil, o zaman ...

Eh, enragingly dairesel bu. Uygulamanın yönergesine bağlı olduğunu söylersem, dairesel bir bağımlılık alıyorum. Yapmazsam, Açısal yönerge hakkında bir şey bilmiyor ve etiket göz ardı ediliyor.

AngularAMD'nin tüm denetleyici çözümleme mekanizmasının yeniden üretilmesinin kısa bir yolu, bunu yapmamın bir yolu var mı?

+0

Neden yönerge uygulamaya bağlı? RequireJS kullanmadım, ama yanlış görünüyor. Belki de uygulama direktifine bağlı olmalı? Yani bir uygulamayı yüklerseniz, yönerge bununla birlikte yüklenir. Ayrıca, sorunu yeniden üreten bir kod örneği gönderirseniz sorunu anlamak daha kolay olurdu. –

+0

Direktiflerin bir modülde olması gerekir - uygulama bu modüldür. – Malvolio

cevap

3

Ben iki durum olamayacağını düşünüyorum:

1) Kişisel direktifi bağımsız ve aslında uygulamada şeye bağlı değildir. Eğer kendi modüle koyabilirsiniz Bu durumda

(hem RequireJS ve açısal açısından):

// my-directive.js 
var module = angular.module('my-directive', []); 

module.directive('myDirective', [ 
    ... 
]); 

// app.js (depends on my-directive.js) 
var app = angular.module('myapp', ['my-directive']); 

Bu kullanım şekli AngularAMD tarafından desteklenmektedir, 3rd Party AngularJS Modules bakın. 2) Yönergeniz uygulamanızın içindeki bir şeye bağlıdır. Bu durumda - aynı modülün içine koyun (hem açısal hem de RequireJS açısından).

// app.js 
var app = angular.module('myapp', []); 

app.directive('myDirective', [ 
    ... 
]); 

3) [Güncelleme] Bir daha çözeltisi: AngularAMD ayrıca özel tanımlamak için durum ve yükü an application wide module destekler.

+0

Her iki durumda da, Uygulamayı yüklediğimde direktif için tüm kodu yüklemem gerekir; bu, Require kullanma noktasını yenecektir. – Malvolio

+0

@Malvolio, bu 2 durumda hem app.js hem de directive.js başlangıçtan yüklenecek mi? Ve bunu "sadece app.js'yi yükle ve yalnızca gerekli olduğunda directive.js'yi yükle" gibi olmasını ister misin? –

+0

@Malvolio aslında AngularAMD üçüncü taraf modüllerini yüklemeyi desteklemektedir, bkz. [Bu] (https://github.com/marcoslin/angularAMD#3rd-party-angularjs-modules), bu yüzden yönergenizi ayrı bir modülde kullanırsanız (yaklaşım 1) , İşe yaramalı. Ayrıca, tam olarak istediğiniz gibi görünen [belgeler] (https://github.com/marcoslin/angularAMD#loading-application-wide-module) özel bir kullanım durumu var. –

İlgili konular