【问题标题】:Knockout clear binding in views form fields视图表单字段中的剔除清除绑定
【发布时间】:2016-02-02 13:09:44
【问题描述】:

用户发表帖子后,我似乎无法弄清楚如何清除表单中的值。淘汰赛绑定是否有任何类型的重置?我在帖子的.done 中尝试了self.user = null,但这些字段并没有从表单字段(视图侧)中清除。

function CreateUserModal(userListViewModel) {
    var self = this;

    self.user = userModel;
    self.errors = ko.validation.group(userModel);
    self.userListViewModel = userListViewModel;

    self.save = function () {
        if (self.errors().length == 0) {
            var userJson = ko.mapping.toJS(self.user);
            $.post('/api/user', userJson)
                .done(function () {
                    console.log('POST user.');
                    self.userListViewModel.isCreateModalShown(false);
                    self.user = null;
                    self.userListViewModel.loadData();
                });
        } else {
            console.log(self.errors());
        }
    };
}

【问题讨论】:

  • 如果您发布显示绑定的 HTML 标记会很有帮助。
  • 添加了 HTML 标记,但我很困惑为什么将其设置为 null 并不能清除所有字段?

标签: knockout.js


【解决方案1】:

仅仅将 user 设置为 null 是行不通的,因为 user 不是可观察的。 DOM 通过可观察的变化进行更新。如下更新您的代码,它应该适合您:

self.user = ko.observable(userModel);
...
// inside done callback
self.user(null);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-22
    • 2015-03-15
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多