2016-10-03 5 views
0

Ich habe eine gebundene Datenvariable mit dem Namen 'bool', die einen Wert von 100 hat. Wenn ich ein Kontrollkästchen anklicke, möchte ich den Wert erhöhen, indem Sie 50 hinzufügen. Was mache ich falsch?Angular, ändern Modellwert mit Kontrollkästchen

<div ng-app="app"> 
    <h3 ng-model="bool = 100">BOOL</h3> 
    <input type="checkbox" ng-model="add = 50"/> 
    <div>{{bool + add}}</div> 
</div> 

Jede Hilfe wäre sehr dankbar,

Danke :)

+0

Haben Sie nicht einen Controller für diese App haben? Können Sie uns Ihren Javascript-Code zeigen - Ihren Controller? – ishmaelMakitla

+0

Ich habe einen leeren Controller, ich frage mich, ob das rein durch Direktivenberechnung möglich war, brauche die Daten nicht, um irgendwohin zu gehen –

+0

Ich würde vorschlagen, dass Sie versuchen, den Controller zu verwenden. – ishmaelMakitla

Antwort

1

ng-model nicht ein Ausdruck sein kann. Wenn Sie einen Standardwert zuweisen müssen, sollten Sie ng-init verwenden.

Auch ein Kontrollkästchen hat einen Wert von entweder wahr (1) oder falsch (0). Also, obwohl {{bool + add}} wird zunächst 150 angezeigt, sobald Sie das Kontrollkästchen aktivieren oder deaktivieren, wird entweder 100 oder 101 angezeigt, da jetzt add entweder 0 oder 1 ist abhängig von dem Status überprüft.

angular.module('app', []);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> 
 
    <div ng-app="app"> 
 
     <h3 ng-model="bool" ng-init="bool = 100; additional = 0">BOOL</h3> 
 
     <input type="checkbox" ng-model="add" ng-change="additional = add * 50"/> 
 
     <div>{{bool + additional}}</div> 
 
    </div>

+0

Hi @Lex, yep das habe ich probiert. Was es tut ist, den Wert auf 150 zu initialisieren, dann auf Checkbox setzt es 101 (wahr mit einem Wert von 1) und auf Toggle schaltet zwischen 100 und 101. –

+0

Was ich brauche, ist für den Anfangswert zu 100 und auf Kontrollkästchen klicken , der Wert wechselt zu 150 –

+0

Ich bin nicht sicher, warum Sie dies im HTML tun möchten, aber ich habe meine Antwort aktualisiert, um einen möglichen Ansatz zu zeigen. Wie von ishmaelMakitla vorgeschlagen, gehört diese Art von Logik jedoch wirklich in den Controller. – Lex

Verwandte Themen