2016-09-28 4 views
1

Hallo Ich habe ein Modul mit Konstanten in ihm definiert. Ich möchte diesen konstanten Wert unter einer Bedingung vom Controller ändern, so dass dieser geänderte konstante Wert an anderen Stellen verwendet werden kann. Dies ist das Beispiel meiner Konstanten-DateiWie setze ich den Wert für angularjs constant file von angularjs controller

angular.module('myapp').constant("Constantobject", { 

    TOOL: "Jump", 
    NAME: "cat", 

}) 

Wie kann ich den Wert von Sprung vom Controller ändern.

+1

Das Ziel der Konstanten ist nicht die Änderung des Wertes in der Anwendungslebensdauer. –

+0

ja. Aber die Anwendung, an der ich arbeite, wurde bereits von meinem Kollegen entwickelt, so dass die Hälfte der App mit dieser Konstante entwickelt wurde. Kann ich die Änderung zum ersten Mal überhaupt vornehmen, so dass der Wert auf die Konstantendatei gesetzt wird. –

Antwort

0

Wenn Sie Werte ändern möchten, sollten Sie keine Constant verwenden, auch wenn Sie Werte ändern können.

Ersetzen Sie einfach Ihre Constant mit einem Factory, es auf die gleiche Weise funktionieren

Constant

angular.module('myapp').constant("Constantobject", { 
    TOOL: "Jump", 
    NAME: "cat", 
}) 

Fabrik (man kann sogar den Namen behalten, aber das ist nicht ratsam)

angular.module('myapp').factory("Constantobject", function(){ 
    return { 
    TOOL: "Jump", 
    NAME: "cat" 
    } 
}) 

Und auf einem Controller können Sie ld aktualisieren nur den Wert, indem Sie
Constantobject.TOOL = 'some value'

Auch wenn Sie das halten Constant Sie können es auf die gleiche Weise aktualisieren.

+0

Danke für Ihre Kommentare. Da es so ist, sollten wir keine Konstante verwenden, wenn wir den Wert ändern wollen. Ich habe das Konzept jetzt komplett geändert. –

0

Da sollten wir keine Konstante verwenden und den Wert später ändern. Ich habe einen anderen Ansatz verfolgt, um mein Problem zu lösen, indem ich einige globale Variablen deklarierte. Danke für Ihre Hilfe.

Verwandte Themen