没有让parseInt在knockout.js上工作(NaN错误)

not getting parseInt to work on knockout.js (NaN error)

本文关键字:工作 NaN 错误 js parseInt knockout      更新时间:2023-09-26

我试图通过knockout.js做一些计算,但我得到一个NaN错误。

这是代码:

function AppViewModel() {
    aanvoerSl25mm = ko.observable();
    lengtePrijs125mm = 1;
    totaalAanvoer = parseInt(aanvoerSl25mm*lengtePrijs125mm);

}
ko.applyBindings(new AppViewModel());

totaalAanvoer给出NaN作为输出。

这是一把小提琴:

http://jsfiddle.net/FullContCoder/3TUsp/2/

任何帮助都太好了。谢谢!

有几个问题:

  1. 正如attila所说,aanvoerSl25mm是一个函数(可观察对象是函数),因此您需要使用aanvoerSl25mm()
  2. 获取值。
  3. 你没有给aanvoerSl25mm提供一个值,所以它的当前值是未定义的。您应该使用aanvoerSl25mm = ko.observable(0);
  4. 这样的值来创建它
  5. 您只计算一次值(立即)。您需要做的是创建一个计算函数(请参阅此处的文档)。这意味着当可观察对象发生变化时,计算值将自动改变。例如:

    totaalAanvoer = ko.computed(function() { return parseInt(aanvoerSl25mm()*lengtePrijs125mm); });