Wie Holen Sie eine Art von scope-Variablen in Eckigen Ausdruck?
Definieren wir einen einfachen booleschen über den Umfang:
var mymodal = angular.module('mymodal', []);
mymodal.controller('MainCtrl', function ($scope) {
$scope.b = false;
});
Wie kann ich den Typ einer Variablen in den Ausdruck? typeOf
und Object.prototype.Tostring.call
funktionieren nicht.
<div ng-controller="MainCtrl" class="container">
<div>
{{ b }}
{{ typeOf(b) }}
{{ Object.prototype.toString.call(b) }}
</div>
</div>
Hier der JSFiddle: http://jsfiddle.net/g8Ld80x3/2/
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich denke, der beste Weg, um erstellen Sie einen benutzerdefinierten filter und verwenden Sie es wie Sie wünschen in Euch Ausdruck, können Sie überprüfen, diese link, der nutzen für Sie das Objekt.Schlüssel eines Objekts
für Ihren Fall können Sie
Nur um zu zeigen, Zamboney Antwort angewandt auf mein Beispiel-code:
Controller:
Anzeigen:
Geige und: http://jsfiddle.net/g8Ld80x3/5/
Können Sie es nicht tun und das aus gutem Grund: Winkel-Ausdruck parser verbietet solche Art von Dingen, die in den Vorlagen.
Wenn Sie wirklich wollen, um in der Lage zu tun, empfehle ich explizit helper-Methoden auf die
$rootScope
so wird es sein, in allen Ihren Vorlagen:Können Sie Sie auch Referenz-Winkel-eigenen utility-Methoden:
und verwenden
{{ isArray(arr) }}
Vorlagen.Probieren Sie etwas wie dies in den controller(ich glaube nicht, dass möglich ist, direkt im Ausdruck, wie Sie wollen):
JS:
HTML:
ng-if
oderng-show
/ng-hide
Richtlinien.Als Sie versuchen, auf den Typ
typeof
von den spezifischen Wert und die aktuelle code, den Sie dabei in derview
die ist schon Recht spät für eine solche operation.Stattdessen können Sie eine Funktion im controller-Bereich und der gerade wieder von dort:
JS:
HTML:
HTML
JS
ERGEBNIS
//entsprechend der oben genannten Anweisung, das Objekt wird das Ergebnis der typeof-operator. Es funktioniert nicht überprüfen Sie den Typ der typeof-operator: http://bonsaiden.github.io/JavaScript-Garden/#types.typeof