javascript - 订阅循环中的属性 - KnockoutJs
问题描述
我需要帮助来订阅对象中的属性。我不知道哪个属性名称和多少,我正在根据来自服务器的数据生成一个属性对象。
我有如下代码:
viVm.requestData.ageGroups = {};
var classificators = viVm.requestData.multiTrip() === 1
? viVm.classificators.ageGroups.multiTrip
: viVm.classificators.ageGroups.singleTrip;
classificators().forEach(function (entry, index) {
var entry = ko.toJS(entry);
var code = entry.code;
viVm.requestData.ageGroups[code] = 0;
viVm.requestData.ageGroups[code].subscribe(function (newValue) {
validateAgeGroupValue(newValue, viVm.requestData.ageGroups[code]);
});
});
它设置了属性,它的值是 tom0,但在.subscribe()
一步我得到一个错误 -viVm.requestData.ageGroups[code].subscribe is not a function
任何人都可以解释我做错了什么,并可能提供一些变体如何使其工作吗?谢谢你。
解决方案
您收到此错误的原因是因为 0(零)不是 Knockout observable(函数)。您正在尝试订阅一个整数。
尝试这个:
viVm.requestData.ageGroups[code] = ko.observable(0);
viVm.requestData.ageGroups[code].subscribe(function (newValue) {
validateAgeGroupValue(newValue, viVm.requestData.ageGroups[code]);
});
推荐阅读
- labview - 如何解析 XML 文件并搜索使用 LabVIEW 出现的特定字符串
- swift - OSLogPrivacy:.private 和 .sensitive 有什么区别?
- c++ - Json输出成单行
- vue.js - 如何将文本对齐添加到tiptap编辑器?
- javascript - 为什么 z-index 中的切换在课堂上不起作用?
- reactjs - 我的节点模块的解压大小突然增加了很多,没有太大变化
- php - “indexer”命名空间中没有定义命令
- r - 多次从向量列表中采样单个值
- sql - SQL:按批次计算丢失的值
- sql - 如何在 Shell 脚本中读取文件中某些文本之后的某些行