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

时间:2014-05-05 00:12:03

标签: javascript knockout.js

我试图通过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 个答案:

答案 0 :(得分:1)

有一些问题:

  1. 正如attila所说,aanvoerSl25mm是一个函数(observables是函数),所以你需要使用aanvoerSl25mm()
  2. 来获取值。
  3. 您尚未向aanvoerSl25mm提供值,因此其当前值未定义。您应该使用aanvoerSl25mm = ko.observable(0);
  4. 等值创建它
  5. 您只是计算一次(立即)。你想要做的是创建一个计算函数(见the documentation here)。这意味着当可观察变化时,计算值将自动改变。例如:

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