Nicht eckig.equals () - Arbeit als Winkel Ausdrücken?
Ich versuche, die Anzeige ein div, wenn ein Objekt nicht leer ist. Mit diese Antwort, ich versuche zu verwenden angular.equals
zu überprüfen, emptyness, die aber nicht verhält wie erwartet
JS:
var test = angular.module('test',[]);
test.controller('testCtrl', ['$scope', function($scope){
$scope.foo={};
$scope.bar="bam"
}]);
HTML:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="test">
<div ng-controller="testCtrl">
<div ng-show="!angular.equals(foo,{})">{{bar}}</div>
</div>
</div>
Hierbei besteht die Erwartung, dass der Wert der bar
wird nur angezeigt, wenn foo
ist nicht gleich ein leeres Objekt. Allerdings foo
ist eindeutig {}
und noch bar
noch zeigt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, um Zugriff auf die
angular
Objekt aus Vorlagen oder Ausdrücke, die Sie haben, um es auf den Bereich, wo Sie wollen, es zu benutzen. In diesem Fall können Sie es auf dietestCtrl
's scope.JS:
HTML:
Ich in der Regel setzen utility-Objekte, die auf
$rootScope
, also sind Sie verfügbar, von überall.$rootScope.angular = angular;
das Beispiel in der Antwort wird dasselbe Verhalten.Ein sauberer Weg wäre, um nur fügen Sie die eckigen equals-Methode, um die $scope:
Dann können Sie die equals-Methode in der Vorlage, wie:
Ihre Ansicht ist auf der Suche nach einer Funktion, die auf den Umfang und die
$scope.angular.equals
existiert nicht. Sie müssen schreiben wie dieses:JS:
HTML:
Winkel-Funktionen können nicht verwendet werden, inline, AFAIK.
Sie konnten den gleichen check mit eine Funktion in der Steuerung statt und das Ergebnis zurückgeben.