使用Knockout,是否可以设置单向绑定,以便更改视图模型将更新视图,但是更新视图不会更新视图模型?
我正在使用路由引擎从URL获取参数,从源获取数据,填充视图模型,填充表单(视图)。但是,我不想在用户更改表单值时更新视图模型-我希望他们“提交”表单,这将更新URL,这将触发路由引擎...
我尝试过data-bind="textInput: MyValue"
,它会在每次击键时data-bind="value: MyValue"
更新视图模型,当表单元素失去焦点时会更新视图模型data-bind="attr: {value: MyValue}"
,该方法适用于初始绑定,但是更改视图模型的值不会更新视图。
是否有任何默认绑定可以满足我的需求?还有其他方法吗?
谢谢!
如果您在基因剔除中执行属性,绑定将成为一种方式/只读。因此,在以下模型中,例如:
var Person = function(data){
var self = this;
self.FirstName = ko.observable(data.FirstName);
self.LastName = ko.observable(data.LastName);
self.FullName = ko.computed(function(){
return self.FirstName() + " " + self.LastName()
});
}
myData = { FirstName: "John", LastName: "Smith" }
var me = new Person(myData);
ko.applyBindings(me);
我只需在绑定中执行即可将FirstName设为单向/只读属性:
<input data-bind="value: FirstName()">
<input data-bind="value: LastName">
<label data-bind="text: FullName"></label>
因此,现在第一个输入仅获取值并且不能设置它,但是第二个输入将具有双向绑定并更新LastName属性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句