Knockout.js观察预先存在的API对象的成员
Knockout.js Observing members of a pre-existing API object
我已经编写了一个大型数据API,用于web应用程序之外的多个位置,我想将淘汰集成到应用程序中。似乎通过敲除,你可以创建一个具有可观察性的模型。我无法想象的是一种观察API中预先存在的值的方法。这可能吗?或者我需要一个中间模型来来回推送数据吗?这似乎非常不方便和低效。我是不是错过了一些显而易见的东西?
在下面的代码中,我想观察一下name属性。我很乐意在这里提出最佳方法的建议?
编辑:首选的方法是将观察者附加到已经存在的属性上,而不是围绕敲除编写API或在API之上编写额外的包装器。这个API与一些非浏览器应用程序共享,我认为这消除了使用敲除编写整个API而不增加额外复杂性的可能性。我愿意考虑其他可以满足我需要的框架。
myAPI.user = {
...
get name() {
return myAPI.user.object.name;
},
set name(x) {
myAPI.user.setProperty('name', x);
}
...
};
您可以编写自定义computed
。
var VM = function() {
this.apiUserName = ko.computed({
read: function() { return myAPI.user.object.name; },
write: function(value) { return myAPI.user.setProperty('name', value); },
owner: this
});
}
现在,如果myAPI.user.object.name
发生更改并且您有一个事件,请调用valueHasMutated
。
// inside your event
vm.apiUserName.valueHasMutated();
相关文章:
- 使用Facebook live API创建实时视频对象时的隐私设置
- 将复杂对象从angular js传递到web api,它总是返回404
- 谷歌地图API-“;toGeoJson”;返回几何体为null的对象
- 将JavaScript对象发送到API
- 提取API对Javascript中JSON对象响应的特定部分
- Google嵌入API cb=gap对象错误
- 获取 API 响应对象并替换(映射)所有键
- 为什么纬度结果对象从谷歌地图 API 更改
- 表示不将对象从服务发送到 API 控制器
- JavaScript Audio 对象在 Android API 19 中不起作用
- 使用 FileReader 加载 CSV 以创建地图标记的 JS 对象 (地图 API)
- 使用来自AngularJS的Web API JSON响应-错误:应为和数组,但得到了一个对象
- Backbone集合:如何从API中获取特定对象以放置在模型中
- 如何从 JavaScript 中的 File-API 对象获取内容
- 尝试从 JavaScript 中的 API 对象获取深度嵌入的对象
- 使用 JSON.stringify 时将原型函数添加回返回的 Google Maps API 对象
- 在 Redux 缩减器中扩展或克隆文件 Web API 对象以支持其他属性
- 如何获得一个标准的JavaScript文件API对象使用Windows.存储FileOpenPicker类
- Knockout.js观察预先存在的API对象的成员
- fotorama:can't获取API对象(未定义)