2016-07-14 6 views
-1

Ich habe etwa 10 Textfelder in einer Formularseite. Ich habe die folgende Bedingung:ng-deaktiviert, um nur bei Belastung zu bewerten

  1. die Textfelder deaktivieren, wenn nicht mit dem angemeldeten Benutzer erlaubt
  2. das Textfeld deaktivieren, wenn erlaubt, aber habe Wert geladen, wenn die Seite geladen wird (Wert aus dem Dienst geladen)

Unten ist die Bedingung i geschrieben haben, das Textfeld zu deaktivieren:

<input type="text" ng-model="Textbox" class="form-control" ng-disabled="(Textbox != null && !isNotPermitted) ||isNotPermitted" required> 

Unten ist die Frage: On Last sowohl die Bedingung sati SFIES. Aber wenn ich den Zugriff habe und der Wert in der Textbox leer ist, sollte es aktiviert sein und aktiviert werden. Nun, wenn ich nur einen Wert einstelle, sage ich 1, dann wertet es erneut den Ausdruck aus und macht das Textfeld deaktiviert.

Wie kann ich die obige Bedingung einschränken und nur beim Laden der Seite deaktivieren.

Vielen Dank im Voraus!

+0

A. Bitte erstellen ** ** Arbeits Schnipsel so wird es für uns viel einfacher, um das Problem zu verstehen. B. Wenn ich das verstehe, können Sie eine boolesche Variable temp hinzufügen, die angibt, ob die Seite geladen wird oder nicht. –

+0

Finden Sie den Plocker: https://plnrkr.co/edit/8dZ3wRETZuk75SLA04pg?p=preview. Ich habe den Plunker zum ersten Mal erstellt. Lass es mich wissen, wenn das nicht für dich funktioniert. (Ich denke, müssen Sie anhalten und erneut ausführen, um die Textbox zu laden) – Lak

Antwort

0

Sie müssen eine dritte Variable einführen.

Überprüfen Sie die Arbeits plunkr hier:

<body ng-controller="MainCtrl"> 
    <input type="text" ng-model="Textbox" ng-blur="ngBlur = true" class="form-control" ng-disabled="(Textbox != null && ngBlur && !isNotPermitted) ||isNotPermitted" required> 
    </body> 

In Controller:

app.controller('MainCtrl', function($scope) { 
    $scope.isNotPermitted = false; 

    if($scope.Textbox){ 
    $scope.ngBlur = true; 
    }else{ 
    $scope.ngBlur = false; 
    } 

}); 

https://plnkr.co/edit/42csnMbxYkDk1CkNjSzJ?p=preview

+0

Danke für die Antwort! Wenn das Textfeld beim Laden basierend auf der gegebenen Bedingung aktiviert ist, muss es immer aktiviert sein. Ich möchte das nicht noch einmal deaktivieren. Diese Sperrbedingung sollte nur bei Belastung für mich ausgewertet werden. Hoffe ich bin klar – Lak

Verwandte Themen