我正在使用敲门.js。我创建了一个视图模型,说testViewModel
仅具有1个可观察的属性testProperty
。
function testViewModel()
{
var self = this;
self.testProperty = ko.observable("Initial");
}
比我创建了一个
span
,其中反映了testProperty
的更改后的值,以及一个input text field
,通过该值我们可以更改testProperty
的值。 <span data-bind="text: testProperty"></span><br />
<input type="text" data-bind="value: testProperty" />
我创建了一个Example Fiddle。当在输入文本字段上执行聚焦事件时,似乎可观察的属性值会更新。
现在我的问题是,我们可以将可观察属性值更新事件从焦点更改为其他内容吗?我也创建了一个保存按钮。是否只有通过按保存按钮才能更新可观察属性值。
我正在尝试创建一个应用程序,用户可以在其中创建和保存其概要文件,并可以编辑保存的概要文件。我在创建和编辑表单中使用相同的可观察属性,并且这些属性是可观察的。因此,当用户编辑其个人资料时,用户界面不应
直到用户按下保存按钮进行更新。这是我的目标。请帮我解决这个问题?
最佳答案
我建议使用testProperty和testProperty_temp。将输入绑定到temp,然后单击按钮,将testProperty设置为testProperty_temp
function testViewModel()
{
var self = this;
self.testProperty = ko.observable("Initial");
self.testProperty_temp = ko.obserable("");
self.save = function() { self.testProperty(self.testProperty_temp()); }
}
希望这可以帮助