【发布时间】:2015-01-29 17:11:47
【问题描述】:
我正在使用淘汰赛邮箱来标记脏标志。代码如下所示:
var ProfileModel = function() {
this.nickName = ko.observable("name1").publishOn("dirty", true);
this.emailAddress = ko.observable("email1").publishOn("dirty", true);
};
ko.postbox.subscribe("dirty", function(newValue) {
// enable Save button
}, this);
nickName 和 emailAddress 绑定到输入框。
<div id="profile">
<input data-bind="value: nickName" /> </label>
<input data-bind="value: emailAddress" /></label>
</div>
重现问题的步骤:
- 用户到昵称输入框删除内容。引发
dirty并启用“保存”按钮。 - 用户单击保存按钮。更改已保存,“保存”按钮变为禁用。
- 用户转到 emailAddress 并删除内容。
dirty不会以某种方式提出。用户无法保存更改。 - 用户在 emailAddress 或 nickName 上键入内容。引发
dirty并启用“保存”按钮。
您可以查看jsfiddle 以查看它的实际效果。 jsfiddle示例中没有保存按钮,只是尝试删除nickName的内容,然后删除emailAddress。您将看到删除 emailAddress 不会引发 dirty 事件。
这是淘汰邮箱中的已知错误吗?有没有更好的方法来检查淘汰赛的脏度?
【问题讨论】:
-
是的,我看到了问题 - 我怀疑这是邮箱中的错误。我不以这种方式使用邮箱,所以无能为力。对于编辑/保存/取消,请查看github.com/stevegreatrex/ko.plus - 一个很好的编辑/取消/提交功能。
标签: knockout.js knockout-postbox