Winkel-ng-Karte nicht ordnungsgemäß funktioniert, wenn Wert geändert
Ich versuche zu zeigen, div, hängt von der Berechtigung der Benutzer anmelden.
<div class="container">
<p> {{permission}}</p>
<div ng-show="permission" class="admin_panel">
....
</div>
</div>
und in der Steuerung ist eingestellt:
$scope.init = function(){
if($window.sessionStorage.isAdmin){
$scope.permission = $window.sessionStorage.isAdmin;
}
$log.info("are you admin??? " + $scope.permission);
};
$scope.init();
In der Konsole, konnte ich überprüfen, ob die Berechtigung auf false festgelegt wurde und {{permission}}
zeigte auch
der Wert false ist. Jedoch, ng-show wird immer noch angezeigt, auch wenn der Wert false ist. Ich bin nicht sicher was ist falsch mit dieser.
InformationsquelleAutor REALFREE | 2014-12-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht
ng-show="permission === true;"
?ng-show
, nach meinem Verständnis, die gemeint ist, zu beurteilen, was innerhalb der Anführungszeichen. dies würde nur ausdrücklich die Bewertung. Ich habe Erlebnisse gehabt, wo nur eine variable innerhalb von Anführungszeichen ist nicht eine Bewertung, dieng-show
erkennt für einige ungerade Grund.ngShow weder erkennen, dass eine einfache Funktion, mit return true / false.
InformationsquelleAutor justinpinili
Ich hatte ein ähnliches problem, außer dass meine variable verändert wurde, im inneren
eine timeout-Funktion wie folgt:
war das problem gelöst, wenn ich Hinzugefügt $scope.$anwenden() in timeout:
InformationsquelleAutor mohammad eslahi sani
Wenn Sie wollen, um zu zeigen, oder verstecken Sie einige Inhalte, die abhängig von den Berechtigungen des Benutzers, anstelle von "ng-show", die Sie verwenden sollten "ng-if".
ng-show/ng-hide nur hinzufügen oder entfernen einer CSS-Klasse ein-oder ausblenden von element (display:none), aber ein Benutzer kann es leicht ändern im browser.
Mit ng-if: "Wenn der zugewiesene Ausdruck ngIf ergibt einen falschen Wert dann das element aus dem DOM entfernt, ansonsten ein Klon des Elements ist wieder in der DOM."
https://docs.angularjs.org/api/ng/directive/ngIf
ng-if
ist nicht sicherer alsng-show
. Benutzer ändern kanndisplay
, aber Benutzer können auch manuell fügen Sie den html-element (bookmarklet userscript, oder die Eingabe in der Konsole). Genehmigung Prüfung MUSS getan werden, im server-Seite in beide Fall.InformationsquelleAutor Fabricio Duarte
Ich habe dasselbe problem und alles funktioniert einwandfrei außer ng-show. Habe ich etwas verpasst dumm. wenn Sie anrufen, einen controller aus dem anderen Teil des Dokuments können Sie nicht freigeben von Daten zwischen Ihnen. zum Beispiel habe ich 2 div-tag
im Dokument
showSidebar zwischen contentCtrl der div 1 und div2 nicht teilen.
im controller
aber dieser code funktioniert nicht, weil toggleSidebar genannt, die außerhalb der div2 tag und haben eine eigene showSidebar. Erobern dieses problem, das Sie hatten, für die Nutzung des service oder Module. sehen diese link zu mehr Informationen.
InformationsquelleAutor saman
Eine weitere Sache zu prüfen ist, wenn die Seite geladen wird, in dem element untersuchen prüfen, ob das element, das Sie verwenden möchten, ng-Karte gerendert wird, in dem element, das hat der ng-controller-Direktive.
Wenn ein element mit ng-show ist außerhalb der ng-controller-element dann ng-show nicht funktionieren,
InformationsquelleAutor Fakhar Ahmad Rasul