Ответ 1
Как и в случае с angular2.8, этот простой трюк будет делать
<input type="checkbox" [(ngModel)]="object.selected" />
Я пробую простую вещь с Angular 2.0 Я хочу привязать модель к флажку ввода, зарегистрировать "изменение" с помощью метода, выполнить метод, когда состояние флажка изменяется и действует в зависимости от состояния модели. Все работает, но когда метод, связанный с событием изменения, выполняется, состояние модели противоположно тому, что я ожидаю, т.е. Является ложным при выборе флажка, является истинным, когда флажок не выбран. Вот фрагмент кода;
<input value={{object.name}} type="checkbox" [(ng-model)]="object.selected" (change)="onChange(object.selected)">
Любая идея о том, что я делаю неправильно?
Как и в случае с angular2.8, этот простой трюк будет делать
<input type="checkbox" [(ngModel)]="object.selected" />
Способ сделать это без ngModel
<input
id="{{fieldId}}"
type="checkbox"
[checked]="displayValue"
(click)="setDisplayValue($event.target.checked)"
>
displayValue будет получателем/установщиком setDisplayValue() будет обновлять запись, и, следовательно, displayValue будет обновляться
Для меня работает только, когда я использовал (ngModelChange)
:
<input type="checkbox" [(ngModel)]="object.selected" (ngModelChange)="onChange(object.selected)">
Если я использую (change)
или (click)
, состояние всегда противоречит ожидаемому, как вы сказали
Я реализовал его следующим образом:
<input #angularcb type="checkbox" (change)="angular = angularcb.checked" />
Здесь вы также можете увидеть более подробную информацию и живую демонстрацию: http://www.syntaxsuccess.com/viewarticle/input-controls-in-angular-2.0 http://www.syntaxsuccess.com/angular-2-samples/#/demo/input
<input type="checkbox" [ngModel]="object.selected == 'Y'" (ngModelChange)="object.selected=$event?'Y':'N'">
Вы также можете попробовать и проверить объект события и просто вытащить проверенный параметр
<input value={{object.name}} type="checkbox" [(ng-model)]="object.selected" (change)="onChange($event)">
onChange(event) {
var isChecked = event.currentTarget.checked;
}
попробуйте это
app.html
<span *ngFor="#ca of classArray; #i=index">
<input type="checkbox" id="{{ca.id}}" #cv [checked]=false
(change)="onChange(ca.id,cv.checked)">
{{ca.class_name}},{{cv.checked}} <br>
</span>
app.ts
onChange(classId,flag){
console.log(classId+" : "+flag);
}
Попробуйте это.
<input type="checkbox" [checked]="object.completed" (change)="object.completed = !objected.completed" >
Angular 2.x.x stable: проверен флажок флажок флажок:
<input type="checkbox" #checkbox (change)="check(checkbox.checked)">
ц
export class component{
constructor() {}
check(checked){
if(checked){
// checked
}else{
// not checked
}
}
Не забудьте указать имя, или флажок не будет обновлен, и вы получите сообщение об ошибке на консоли.
<label>Sign on<input type="checkbox" name='showLogin2' [(ngModel)]="model.ShowLogin" ></label>
просто напишите отметку в теге типа ввода:
<input type="checkbox" name="abc" checked />
<input type="checkbox" [(ngModel)]="object.selected" />
<div>{{object | json}}</div>
Ввод
<input type="checkbox" (change)="selectionChange($event.srcElement)">
Изменить событие
selectionChange(input: HTMLInputElement) {
input.checked === true
? doSomethingIfTrue()
: doSomethingIfFalse();
}