0

Ich habe zwei Module (A und B) mit Controllern mit dem gleichen Namen. Wenn ich die Controller in Modul C importiere, übersteuern sich die gleichnamigen Controller gegenseitig.Angular Controller Name widersprüchlich über Module

Was ist der Weg, dies zu vermeiden? Namenskonvention vom Typ "module.controller" für meinen Controller?

Danke!

aktualisieren

Hier ist ein Codebeispiel:

module('a',[]).controller("con"); 
module('b',[]).controller("con"); 

module('c', ['a','b']) // controller from a overrides controller from b 
+0

Hey @PankajParkar Ich habe ein Codebeispiel hinzugefügt. Hilft das? – axsauze

+0

Sie sollten nicht zwei Controller haben, die genau das gleiche tun. Geben Sie ihnen einen aussagekräftigeren Namen, der sie voneinander unterscheidet. – rgvassar

+2

Modul 'c' verbindet alles einfach in seinen eigenen Namensraum. Alle Komponenten mit dem gleichen Namen verweisen nur auf eine davon. Am besten ist es, wenn Sie Ihre Controller-Namen wie "aCon" oder "bCon" voranstellen. Es ist eine [bekannte Sache] (http://stackoverflow.com/questions/17862209/how-to-use-two-angularjs-services-with-same-name-from-different-module). – Jorg

Antwort

2

Was ist der Weg, dies zu vermeiden?

Präfix Ihre Controller-Namen mit so etwas wie axs z.B. axsCon.

Hinweis: Dies ist ein Problem mit dem Angular1-Design. Es ist alles global. Tatsächlich sind die Direktiven alle global und ihre Namen sollten auch vorangestellt werden.