knockout js中的错误String不是函数

时间:2014-09-04 10:51:47

标签: javascript knockout.js

嗨,在我的应用程序中,当我点击添加字段时,会出现一个表单,当我尝试提交时,我收到错误字符串不是函数。这是我添加功能的代码

self.addTierFields = function (tier) {
   self.Tiers.push(new Tier({
                bothrate: self.bothrate(),
                compoundratee: self.compoundratee(),
                simplerate: self.simplerate(),
                rate: self.rate() 
   }));
    self.show(true);
};

这里是js小提琴链接demo

2 个答案:

答案 0 :(得分:1)

在您的代码中访问它们时,

self.bothrate等不是淘汰可观察对象。 你在html中定义了它们,它们只是常规字符串。

所以试试这个:

self.addTierFields = function (tier) {
       self.Tiers.push(new Tier({
        bothrate: self.bothrate,
        compoundratee: self.compoundratee,
        simplerate: self.simplerate,
        rate: self.rate 
       }));
        self.show(true);
    };

答案 1 :(得分:0)

在下面的片段中

 self.Tiers.push(new Tier({
            bothrate: self.bothrate(),
            compoundratee: self.compoundratee(),
            simplerate: self.simplerate(),
            rate: self.rate()
  }));

LoanViewModel中没有两个版本,我也改变了很多东西,理解了范围的概念,$ root,$ parent,$ data的含义。

这是新的小提琴

http://jsfiddle.net/b81mjt9k/10/