2016-07-11 27 views
0

Ich bin neu in ionischen und habe mich über die "eckige" Art und Weise eines "globalen Controllers" gewundert.Eckiger Weg des "globalen Controllers" für ionische apps

In meiner App verwende ich die Starter Tabs Vorlage und ich möchte eine Bar haben, mit der ich interagieren möchte, wie der Benutzer in meiner App herumliegt. Und diese Bar würde in meinem index.html wie folgt platziert werden.

index.html

<ion-nav-view></ion-nav-view> 

<div id="my-player" class="idle"> 
    <round-progress background-image="{{roundBg}}" background-repeat="no-repeat" background-position="center" background-size="contain" radius="23" stroke="5"></round-progress> 
</div> 

Ich möchte diese div#my-player geändert werden, wenn der Benutzer mit der App umspielt.

Der Ausgangszustand für #my-player wäre ausgeblendet, was ich über die CSS-Klasse tun würde. Aber wenn der Benutzer zu meiner /#/tabs/replay/{:id} Seite gelangt und auf ein Element klickt, möchte ich ein angularAudioObject hinzufügen und die Audioinformation in #my-player anzeigen.

Ich fand es sehr ineffizient, den gleichen Code immer und immer wieder alle meine Controller zu wiederholen, also fragte ich mich, ob es einen Weg gab, diesen Audio-Controlling-Code einmal geschrieben und nicht in allen von mir aufgerufen werden Controller.

P.S. Ja, und ich bin mir der Dienste bewusst, und wie sie in meinen Controllern enthalten sein könnten, aber ich frage mich, ob es einen Weg gibt, diesen Code "scheinbar in meine index.html Datei integriert zu lassen".

Antwort

0

Es spielt keine Rolle, welche Datei den Code enthält, nur dass die Datei geladen und ausgeführt wird. Das heißt, Sie sollten Dienste oder Fabriken verwenden, um Objekte zu definieren, die Sie für die Lebensdauer der Anwendung beibehalten möchten, und für jeden Code, der sonst wiederholt werden würde (vorausgesetzt, dass dies nicht als Filter oder Richtlinie sinnvoller ist).

Controller sind kurzlebig und werden beim Navigieren durch Ansichten erstellt und zerstört. Sie können einen Controller außerhalb der ui-views haben, der ein Elternteil aller anderen Controller sein könnte, aber es ist wirklich eine zerbrechliche Art, Dinge aufzubauen. Nutzen Sie stattdessen den einfachen DI.