【问题标题】:knockout.js - updating the model after making a form element disabled/enabledknockout.js - 在禁用/启用表单元素后更新模型
【发布时间】:2013-02-23 10:03:33
【问题描述】:

我目前正在尝试使用 Knock out View 模型发布到 ajax 端点。

我正在为以下情况而苦苦挣扎;

  • 我绑定了表单域,一切正常。

  • 我的应用程序有一个场景,其中某些表单字段的 readonly 属性设置为 true(使用 jquery $("#element).attr("readonly","true");)

  • 设置为只读后,模型与控件断开连接(模型项显示为空)。

我尝试在发布之前启用表单元素,然后在之后将它们设置为 null,但这不成功。

如何保持readonly 控件绑定?

【问题讨论】:

  • 一些重现问题的代码会有所帮助。 (PS。为什么 jQuery 设置 readonly 属性?用视图模型(like this)这样做不是更有意义吗?)
  • 同意。 A basic sample 似乎工作正常。
  • jQuery 这样做是因为我有逻辑组合,而不仅仅是 MVVM。我希望有一个updateBinding 或类似的我可以在现场打电话?
  • 您的 KO 模型与我在earlier sample link 中看到的模型有何不同?您的 jquery 逻辑与那里看到的逻辑有何不同?在上面的代码中将“true”更改为 true 有帮助吗?

标签: knockout.js knockout-mapping-plugin knockout-2.0


【解决方案1】:

这很好用。我找错地方了。

问题不在于 I Knockout 没有更新模型。问题是我使用 jQuery 单独更新字段,而不是模型。

我在做:

$("#fieldName").val("new value");
$("#fieldName").attr("readonly","true");

这并没有更新 Knockout 模型。我正在使用模型提交 ajax 请求,所以这是一个问题。

通过这样做,我没有问题:

viewModel.fieldName("new value);
$("#fieldName").attr("readonly","true");

感谢大家推动我重新使用 mvvm。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多