Winkeldienste mit Standardwerten für nicht vorhandene Attribute

9

Arbeiten an einer Ionic-Anwendung, die sowohl in Android als auch in Windows funktioniert.

Es gibt Dienste, wie Ionics $ionicLoading , die wir übersteuern, um in Windows richtig zu funktionieren:

%Vor%

Aber es gibt andere Dienste, die wir außer Kraft setzen müssen, um die App nicht zu brechen. In diesem Fall wäre es wirklich nützlich, einen Dienst bereitzustellen, der nichts bewirkt. Zum Beispiel:

%Vor%
  

Hinweis: Ich weiß, dass ein besserer Weg dies zu tun wäre mit einem Dienst, der zwischen Ionics Implementierung oder einer getroffenen wählt, aber das ist nur dem Lernen zuliebe.

Das Ideal würde noch weiter gehen, es wäre großartig, etwas noch kugelsicherer zurückgeben zu können. So etwas wie ein generischer flexibler Service:

%Vor%

Es ist möglich?

    
fuxes 04.09.2015, 16:01
quelle

3 Antworten

4

Nach dem, was ich verstanden habe, müssen Sie die Implementierung bestehender Dienste außer Kraft setzen. Sie können das mit einem eckigen Service Dekorateur machen.

  

Ein Service-Decorator fängt die Erstellung eines Service ab, wodurch er das Verhalten des Service überschreiben oder ändern kann. Das vom Decorator zurückgegebene Objekt kann der ursprüngliche Dienst oder ein neues Dienstobjekt sein, das den ursprünglichen Dienst ersetzt oder umschließt und delegiert.

Weitere Informationen finden Sie in der Dokumentation . Ein einfaches Beispiel wäre:

%Vor%

EDIT: Frage - Wie überschreibt man jede Methode im Service?

%Vor%

Ich hoffe, dass dir das hilft.

    
S.Klechkovski 11.09.2015 21:02
quelle
0

Verwenden Sie für jede Zuweisung eine Bewertung basierend auf einer Objekteigenschaft, ähnlich der folgenden:

%Vor%

Im Grunde verwenden Sie eine Prüfung, ob die Eigenschaft definiert wurde, ersetzen einen Standardwert, falls nicht, und weisen ihn zu, falls dies der Fall ist.

Alternativ können Sie eine modifizierte Version der globalen Funktion in Sunny Linkback verwenden, um Standardwerte für all jene Eigenschaften zu definieren, von denen Sie annehmen könnten, dass sie an bestimmten Punkten in Ihrem Code undefiniert sind.

%Vor%

Hoffe das hilft,

    
CSS 11.09.2015 20:26
quelle
-3

Verwenden Sie var a = {}; , um eine neue Variable zu deklarieren.

    
Oleh Kurpiak 04.09.2015 16:05
quelle

Tags und Links