这是我的小提琴:
如果点击文字,我正试图让副边可编辑。我在淘汰赛网站上关注这个例子:
视图:
<p>
Name:
<b data-bind="visible: !editing(), text: name, click: edit"> </b>
<input data-bind="visible: editing, value: name, hasfocus: editing" />
</p>
<p><em>Click the name to edit it; click elsewhere to apply changes.</em></p>
脚本:
function PersonViewModel(name) {
// Data
this.name = ko.observable(name);
this.editing = ko.observable(false);
// Behaviors
this.edit = function() { this.editing(true) }
}
ko.applyBindings(new PersonViewModel("Bert Bertington"));
http://knockoutjs.com/documentation/hasfocus-binding.html
当我点击“侧面”的文本时,我点击“编辑”功能,但div的可见性不会改变。我认为这是一个范围问题,但我不知道如何解决它。
答案 0 :(得分:1)
问题是hasfocus
绑定也与editable
可观察量相关联。删除此绑定会导致可见性更新得很好。我猜这意味着Knockout正试图设置焦点并失败,从而将editable
设置为假。
也许不是使用该绑定,而是可以将blur
事件处理程序附加到输入,而是将editable
设置为false的处理程序。