2017-12-28 3 views
0

Ich versuche tatsächlich, ein Paar Radio-Buttons auf einen Klick in meiner angularjs Anwendung zu deaktivieren.ng-disabled nicht jedes Mal auf Knopfdruck auswerten

Code Snippet von Radiobuttons wird hier unten zur Verfügung gestellt:

<div class="col-xs-4 btn-group" id="challenge-radio-btn"> 
    <label class="radio-inline"> 
     <input type="radio" ng-model="trigger" ng-value=false 
       name="{{path.id}} notChallengeTriggr" 
       ng-change = "onChange(x,y,z,w,a)" 
       ng-disabled="campaign.editnotscheduled || ischallengeTrigger" 
       checked> No 
    </label> 
    <label class="radio-inline"> 
     <input type="radio" ng-model="trigger" ng-value=true 
       name="{{path.id}} challengeTriggr" 
       ng-change = "onChange(x,y,z,w,a)" 
       ng-disabled="campaign.editnotscheduled || ischallengeTrigger"> Yes 
    </label> 
</div> 

Auf Klick auf den Button, ich habe sogar versucht, den Wert des Ausdrucks Druck, der innerhalb von ng-disabled ausgewertet zu werden. Mit jedem Klick auf diese Schaltfläche wird der Wert wahr (da ich js code-behind geschrieben habe, um dies wahr zu machen). Selbst wenn der Wert des Ausdrucks ng-disabled wahr ist, werden die Optionsfelder nicht deaktiviert.

Beim Debuggen hatte ich ein bestimmtes Szenario gefunden, in dem es nicht funktionierte. Sobald ich auf ein bestimmtes Dropdown-Menü in meiner Anwendung klicke, klicke danach auf &, um zu prüfen, ob diese Optionsfelder deaktiviert sind oder nicht. Zu diesem Zeitpunkt sind die Optionsschaltflächen nicht deaktiviert, obwohl der Wert für den Wert ng-disable für "true" festgelegt wurde.

+0

Sollen 'ng-disabled = "editnotscheduled' nicht' ng-disabled =" campaign.editnotscheduled' sein? – Rajesh

+0

Mein schlechtes. Tippfehler. Hat die Bearbeitung erforderlich gemacht. Danke für den Vorschlag. –

Antwort

0

Ich denke, die Logik von OR verursacht das Problem.

ng-disabled = "campaign.editnotscheduled || ischallengeTrigger" geprüft> ng-disabled = "editnotscheduled || ischallengeTrigger">

Wenn einer von ihnen Ihre Taste false.then sollte deaktiviert bekommen.

+0

Es ist eine OR-Bedingung, richtig. Wenn hier jemand die Variable wahr ist, dann wird die Bedingung als wahr ausgewertet. In meinem Fall ist 'ischallengeTrigger' wahr. Daher wird diese Bedingung immer als wahr gewertet und eventuell sollten die Optionsfelder deaktiviert werden. Danke für die Antwort. Ich nehme an, Sie haben meine OR-Bedingung mit der Wahrheitstabelle der UND-Bedingung verwechselt. –