我有一个复选框,上面有一些样式,所以它看起来像是在翻转。当用户按下按钮时,它在客户端可视地翻转,但我向服务器发送请求以将该更改保存到数据库。如果发生了一些错误,我想在客户端重新填充它。我会知道是否发生了某些事情,因为会引发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
}
答案 0 :(得分:1)
感谢您与我们一起发布创意。我能够通过传递模型作为最后一个参数来实现这一点:
ng-change="vm.monthValueChanged(s.MFGName, 'Jan', s.Jan, s)"
这让我得到了正确的MFG记录,但后来我需要知道月份栏目。幸运的是,我已经在'Jan'月份过世了。所以我可以在数组中获得正确的数据并将其翻转,从而导致复选框的视觉翻转。
model[month] = !data.Value;