Hola, en mi aplicación, cuando hago clic en addfields aparece un formulario y cuando intento enviar que recibo un error La cadena no es una función . aquí está mi código para agregar función

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

Y aquí está js fiddle link demo

0
user2142786 4 sep. 2014 a las 14:51

2 respuestas

La mejor respuesta

self.bothrate etc. no son observables en el momento en que se accede a ellos en su código. Los tienes definidos en tu html y son solo cadenas regulares.

Intenta esto en su lugar:

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
James 4 sep. 2014 a las 11:30

En el fragmento de abajo

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

No hay ninguna tasa en LoanViewModel, también he cambiado varias cosas, entiendo los conceptos de alcance, significado de $ root, $ parent, $ data.

Aquí está el nuevo violín

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

0
DarthCoder 4 sep. 2014 a las 11:18