2016-04-05 8 views
0

Ich versuche, meine Funktionen nach Komponenten zu modularisieren & war wundernd, gibt es sowieso den Controller-Pfad nur in seinen relevanten Richtlinien enthalten?Angularjs Erstellen von Standalone Custom Direktiven

i versucht, einen Ordner mit Struktur wie diese haben:

-app.js 
-directives  
--slider 
---slider.js 
---slider.html 
---slider-carousel-controller.js 
---slider-single-controller.js 

app.js

//require components 
require('./directives/banner-slider/banner-slider.js'); 

Meine benutzerdefinierte Richtlinie

app.directive('bannerSlider', [function() { 
    return { 
     restrict: 'E', 
     replace: true, 
     templateUrl: "/directives/banner-slider/banner-slider.html", 
    }; 
}]) 

Wie kann ich das erreichen?

+0

Sie sind nie einen Controller Pfad Bezug, aber der Weg zu der Vorlage. –

+0

Können Sie den Teil Ihrer Frage ausarbeiten, um den Controller-Pfad nur in die entsprechenden Direktiven einzubeziehen? _ –

+0

ich sehe! Ich glaube, ich habe tatsächlich mein Denken genau das Gegenteil von Bezug auf den Vorlagenpfad statt Controller-Pfad. Danke für das Aufzeigen! – mark5

Antwort

1

Wie viele relative Pfade planen Sie für eine Richtlinie? Normalerweise werden Direktiven als wiederholbare Komponente mit sich wiederholenden Eigenschaften verwendet, die entweder vom übergeordneten Bereich der Direktiven oder vom isolieren Bereich abgeleitet sind (falls Sie sich dazu entscheiden).

In Ihrem Fall klingt es so, als ob Sie eine Direktive mit mehreren Eigenschaften haben könnten und abhängig von diesen Eigenschaften werden Sie x, y und z mit ihnen machen.

IMO Ich würde einen isolieren Bereich und übergeben Sie Ihre Eigenschaften durch die Direktiven Attribute als Modelle.

app.directive('bannerSlider', [function() { 
    return { 
     scope:{ 
      property1: "=", 
      property2: "=" 
     }, 
     restrict: 'E', 
     replace: true, 
     templateUrl: "/directives/banner-slider/banner-slider.html", 
    }; 
}]) 

Auf diese Weise Sie Ihre Abhängigkeit von der Richtlinien übergeordneten Bereich Entkopplung und die Art und Weise verwenden, imo, sind Richtlinien gemeint verwendet werden.

Und in Ihrem HTML

<banner-slider property1="value" property2="value"></banner-slider> 

Wo Wert alle Daten, die es in sitzt in der Stromregler ist Anwendungsbereich der.

+0

ja für diesen Fall habe ich eine Slider-Anweisung, die ich es wiederholt mit verschiedenen Einstellungen und Wert verwenden werde. isolieren Zielfernrohr klingt wie eine große Sache in dieser Situation, ich werde diese Methode aus und sehen. Werden schließlich alle verschiedenen Werte in der Datei slider.js gespeichert? oder in etwas wie einem Haupt-Slider-Controller.js? – mark5

+0

keiner Ihrer Werte wird in Ihrer Anweisungsdatei gespeichert (ich nehme an, das ist Ihre slider.js). Sie sind in Ihrem Controller gespeichert. – Garuuk

0

möglich sein sollte.

Nennen Sie Ihren Controller (vergessen Sie nicht, um die Datei zu nennen, wo der Controller in Ihrer Datei index.html ist oder was auch immer)

app.directive('bannerSlider', [function() { 
     return { 
      restrict: 'E', 
      replace: true, 
      templateUrl: "/directives/banner-slider/banner-slider.html", 
      controller: 'yourControllerName' 

     }; 
    }]) 
Verwandte Themen