私はチェックボックス付きの予定があります。チェックボックスには「完了」とマークされ、未チェックのボックスには「元に戻す」とマークされます。最初にチェックされていないボックスのチェックを外すと、すべて正常に動作しています。これはチェックされたときに「完了」とマークされ、それを元に戻すと「元に戻す」とマークされます。チェックボックスをオンにすると、角度変更が動作しません
ただし、最初にチェックボックスをオフにすると問題が発生します。何も起こりません。私はそれをチェックしなかったので、 "元に戻す"とマークされているはずです。その後、私はボックスをチェックして、そこにng-change
トリガーがありますが、 "完了"とマークされていませんが、 "元に戻す"とマークされていません。
HTML:
<input icheck type="checkbox"
ng-model="toDo.value.members.status.value"
ng-change="vm.markAs(toDo.value.instanceId)"
ng-click="vm.markAs(toDo.value.instanceId)"
ng-init="toDo.value.members.status.value === 'Undone'"
ng-checked="toDo.value.members.status.value === 'Done'">
<span class="m-l-xs">{{ toDo.value.title }}</span>
コントローラー:
function markAs(id) {
todolistService.getToDo(id).then(function (response) {
vm.toDoStatus = response.data.members.status.value;
if (vm.toDoStatus == 'Undone') {
console.log('Done');
todolistService.markAsDone(id).then(function() {
notifyService.success($translate.instant('MSG_TODO_MARK_AS_DONE_SUCCESS'));
}, function (error) {
notifyService.showError(error);
});
} else if (vm.toDoStatus == 'Done') {
console.log('Undone');
todolistService.markAsUndone(id).then(function() {
notifyService.success($translate.instant('MSG_TODO_MARK_AS_UNDONE_SUCCESS'));
}, function (error) {
notifyService.showError(error);
});
}
}, function (error) {
notifyService.showError(error);
});
}
私はあなたが問題を理解してほしいです。
ステータスがインスタンス化されていないためですしてみてください。ステータスが「完了」または「元に戻す」と等しくない場合、彼はnullまたは空です。 'vm.toDoStatusを追加== '元に戻す' || vm.toDoStatus == undefined' – Alexis
ng-modelとng-checkedを同時に使用するのは普通ですか? – MayK
チェックボックスng-modelはブール値です。だから 'toDo.value.members.status.value'は' Undone'( 'ng-init =" toDo.value.members.status.value === 'Undone' "')ではなくtrueまたはfalseでなければなりません。 – Christoph