如果错误,请重新折叠复选框

时间:2017-07-14 18:51:42

标签: javascript css angularjs

我有一个复选框,上面有一些样式,所以它看起来像是在翻转。当用户按下按钮时,它在客户端可视地翻转,但我向服务器发送请求以将该更改保存到数据库。如果发生了一些错误,我想在客户端重新填充它。我会知道是否发生了某些事情,因为会引发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
    }

1 个答案:

答案 0 :(得分:1)

感谢您与我们一起发布创意。我能够通过传递模型作为最后一个参数来实现这一点:

ng-change="vm.monthValueChanged(s.MFGName, 'Jan', s.Jan, s)"

这让我得到了正确的MFG记录,但后来我需要知道月份栏目。幸运的是,我已经在'Jan'月份过世了。所以我可以在数组中获得正确的数据并将其翻转,从而导致复选框的视觉翻转。

model[month] = !data.Value;