我有一个复选框,上面有一些样式,所以它看起来像是在翻转。当用户按下按钮时,它会在客户端视觉上翻转,但我向服务器发送请求以将该更改保存到数据库中。如果发生错误,我想在客户端重新翻转它。我会知道是否会发生什么,因为会引发 http.post() 的错误回调。我的问题是如何将该复选框翻转回其原始状态?
这是我用于复选框的视觉效果。我正在使用可翻转的: https://codepen.io/anon/pen/yXNopJ?editors=1100
这是复选框的示例(每个月一个)
<input class="tgl tgl-flip" id="cbJan_{{ s.MFGName }}" type="checkbox" ng-model="s.Jan" ng-change="vm.monthValueChanged(s.MFGName, 'Jan', s.Jan)" />
<label class="tgl-btn" data-tg-off="OFF" data-tg-on="ON" for="cbJan_{{ s.MFGName }}" ></label>
在我的 javascript 代码中,我尝试使用 jquery 来构建 id 并检查它,但是那没有做任何事情。它没有出错,也没有还原复选框。
function (error, status) {
alertify.delay(0).maxLogItems(3).closeLogOnClick(true).error('Error: ' + error.data.Message + ' <a href="#" class="close-icon"></a>');
var data = JSON.parse(error.config.data);
var name = 'cb' + data.Month + '_' + data.MFG;
console.log(name);
$(name).prop('checked', !data.Value);
// todo: negate data.Value to get the original value and set the checkbox to that state programmatically
}
感谢大家与我交流想法。我能够通过将模型作为最后一个参数传递来使其工作:
ng-change="vm.monthValueChanged(s.MFGName, 'Jan', s.Jan, s)"
这为我提供了正确的 MFG 记录,但随后我需要知道是哪一列。幸运的是,我已经过了“一月”。所以我可以在数组中获取正确的数据并翻转它,从而导致复选框的视觉翻转。
model[month] = !data.Value;
我是一名优秀的程序员,十分优秀!