循环订阅 属性 - KnockoutJs
Subscribe on property in loop - 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 可观察对象(函数)。您正在尝试订阅一个整数。
试试这个:
viVm.requestData.ageGroups[code] = ko.observable(0);
viVm.requestData.ageGroups[code].subscribe(function (newValue) {
validateAgeGroupValue(newValue, viVm.requestData.ageGroups[code]);
});
我需要帮助订阅对象中的 属性。我不知道哪个 属性 名称将是多少,我正在根据来自服务器的数据生成一个属性对象。
我有这样的代码:
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 可观察对象(函数)。您正在尝试订阅一个整数。
试试这个:
viVm.requestData.ageGroups[code] = ko.observable(0);
viVm.requestData.ageGroups[code].subscribe(function (newValue) {
validateAgeGroupValue(newValue, viVm.requestData.ageGroups[code]);
});