2016-10-17 3 views
1

HTMLAnkreuzfeld remove [geprüft] Winkel 2

<div class="noteCheckBox"> 
    <input type="checkbox" id="noteCheckBox" [checked]="checkbox" (change)="stateCheckBox()"> 
     <label for="noteCheckBox" class="noteLabel">AnyText</label> 
</div> 

Maschinenschrift

import { Component } from '@angular/core'; 
import { CookieService } from '../../services/cookie/cookie.service'; 

@Component({ 
    selector: 'pagCheckBox', 
    templateUrl: './app/html/pagCheckBox.component.html', 
    styleUrls: ['app/css/pagCheckBox.component.css'] 
}) 

export class PagCheckBox { 

    constructor(private cookieService: CookieService) {} 

    ngOnInit() { 
     this.checkbox = this.cookieService.getCookie('checkbox'); 
    } 

    stateCheckBox(event) { 
     let state = $("#noteCheckBox").prop("checked"); //true or false 
     this.checkbox = this.cookieService.setCookie('checkbox', state); 
    } 
} 

Ich habe ein CookieService, die Informationen enthalten (von Cookie-Browser) über Zustandskontrollkästchen (true oder false) .

Wenn (checkbox == true) dann müssen Sie hinzufügen checked in Html sonst zu entfernen.

Ich habe versucht, [checked]="checkbox" und Kontrollkästchen dynamische Änderungen (true oder false) und attr aus oder auf, aber schlecht.

Antwort

3
  • auf Attribute anstelle von Eigenschaften [attr.fooAttr]
  • verwenden zu binden Attribute assign null entfernt zu bekommen (false wird ein Attribut mit dem Wert "false" hinzufügen, aber das Attribut nicht entfernen, während mit null Angular es aus dem DOM entfernt.
[attr.checked]="checkbox ? true : null" 
+0

Hat du meinen zweiten Vorschlag auch versuchen? –

+0

'che cked' ist als Eigentum verfügbar und funktioniert einfach (ohne irgendwelche meiner Vorschläge) [** Plunker Beispiel **] (https://plnkr.co/edit/7ym8P0p8sXGC6x5wwwy0v?p=preview). Vielleicht ist der von 'this.cookieService.setCookie (...) 'zurückgegebene Wert nicht boolesch, sondern eine Zeichenkette. –

+1

Ja, das ist es. Vielen Dank. Just this.cookieService.setCookie (...) ist nicht boolesch, sondern eine Zeichenfolge. Oh, das ist JS) – Lestoroer