是否有一种方法来实现主/从类型依赖的可观察对象在Knockout JS
Is there a way to achieve master/slave type dependent observables in Knockout JS
我的模型中有2个字段具有主/从类型关系。
如果主服务器更新了,从服务器也应该更新。
如果从服务器更新,则主服务器不受影响。
我已经设法实现这与手动订阅- http://jsfiddle.net/ProggerPete/XNUPj/
但是我想知道我是否可以在没有手动绑定的情况下获得相同的结果。我想要它的原因是我不想在销毁视图时取消手动订阅。
欢呼,彼得。
一般来说,我认为手动订阅是解决您的问题最直接的方法。
然而,创建你自己的自定义观察对象是很容易的,它封装了这个功能,并在一个可写的dependentObservable中处理主和从的更新。它可能看起来像这样:
function customObservable(initialValue) {
var _source = ko.observable(initialValue),
_local = ko.observable(initialValue),
result = ko.dependentObservable({
read: _source,
write: function(newValue) {
_source(newValue);
_local(newValue);
}
});
result.local = _local;
return result;
}
,你可以这样使用:
var viewModel = {
source: customObservable("sourceValue")
};
customObservable(你想叫它什么都行)返回一个可写的dependentObservable,它将更新你可以绑定的两个值作为source
。本地值也显示为source.local
。
因此,您将在您的场景中使用它,例如:http://jsfiddle.net/rniemeyer/67pDS/
我不确定你想如何使用这个功能。如果你正在寻找接受/取消对一个可观察对象的编辑的能力,那么你可能会想看看这个自定义的可观察对象。
显示自定义绑定处理的代码片段:
var subscription = oComboBoxModel.value.subscribe(updateBestMatchFromValue, oComboBoxModel);
//handle disposal (if ko.cleanNode is called on the element)
ko.utils.domNodeDisposal.addDisposeCallback(element, function(){
subscription.dispose();
});
相关文章:
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 如何在DOM元素上按类型构建此函数
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何从querySelectorAll中获取按钮类型
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- 如何将具有文本类型值的var放入jQuery函数中
- javascript解释器如何理解变量的数据类型
- 可变大小的JavaScript字符串如何成为基元类型
- AngularJS指令只识别双向绑定类型
- Node.js中依赖于版本的类型继承
- 依赖对象类型检查Javascript似乎是多余的
- 复杂的循环节点模块依赖抛出“类型错误:'继承'的超级构造函数必须有一个原型”
- 带有外部依赖项的Jasmine单元测试指令失败,类型错误:'[object对象]'
- 是否有一种方法来实现主/从类型依赖的可观察对象在Knockout JS
- 如果我要在npm模块中添加类型,我怎么能依赖全局类型呢?
- 如果上传的文件是音频、视频或图像类型,在使用JavaScript验证时依赖MIME TYPE是否可以?