Dies ist wahrscheinlich eine einfache Frage, aber schwer zu suchen ...Auswertung Angular Ausdrücke in Javascript-Strings
ich den Text auf einer Schaltfläche haben auf einer Bedingung basiert Wechsel:
<button>{{buttonText()}}</button>
<script>
$scope.buttonText = function() {
if (condition) {
return "Here is {{otherVar}}";
} else {
return "Nope!";
}
}
</script>
Natürlich Die Schaltfläche zeigt "Hier ist {{otherVar}}" ohne den Ausdruck otherVar
in den Ausdruck zu analysieren. Gibt es eine Möglichkeit, die js-Saite eckig auszuwerten?
Die gesamte Zeichenfolge wird von einem CMS übergeben, so kann ich nicht nur return "Here is" + otherVar;
tun Suche nach etwas wie return angularEval("Here is {{otherVar}}");
Wh y kannst du nicht einfach die eigentliche 'otherVar' in die Zeichenkette in JS einfügen, anstatt etwas eckigesEval zu benutzen? –
Sie können Ausdrücke auf diese Weise nicht auswerten; Winkelausdrücke haben nur einen Kontext innerhalb des Controllers, an den sie gebunden sind (ihre spezifische '$ scope' -Instanz). Das Speichern eines Ausdrucks in einer Datenbank ist nicht sinnvoll, da es keine Möglichkeit gibt, zu wissen, dass dieser Ausdruck für denselben Controller mit derselben Variablen ausgewertet wird. – Claies
Ich sehe. Die Zeichenfolge wird in einer Datenbank gespeichert, so dass der Client sie im CMS übersetzen kann: "Hier ist {{otherVar}}" für Englisch und "Hier ist {{OtherVar}}" für Deutsch. – Keith