从绑定formatCurrency()获取有关调用自定义函数的错误

时间:2015-06-03 13:50:18

标签: javascript knockout.js

错误消息是ReferenceError:formatCurrency未定义

这是我的jsfiddle http://jsfiddle.net/tridip/3bu6nybk/

请有人看到我的jsfiddle链接并告诉我为什么我收到此错误消息错误消息是 ReferenceError:formatCurrency未定义

formatCurrency在同一个地方定义

 function formatCurrency(value) {
           alert(value.toFixed(2));
          return "$" + value.toFixed(2);
      }

我正这样打电话<span data-bind='text:formatCurrency(subtotal())'>

感谢

2 个答案:

答案 0 :(得分:1)

KO在其上下文中查找函数,new CartLine().formatCurrency === undefined

修复将是:

var CartLine = function () {
  var self = this;
  self.formatCurrency = formatCurrency;
  // ...
  // ...

但是如果你能在KO绑定中实际引用全局函数,那么就是IDK。

答案 1 :(得分:0)

您已将formatCurrency添加到Cart,但它正在CartLine循环中访问,因此当您引用它时,knockout会尝试在CartLine对象中查找该函数。如果你使用$ root.formatCurrency它应该工作,因为它将在根范围内查看,在本例中是一个Cart对象

 <td ><span data-bind='text:$root.formatCurrency(subtotal())'></span></td>

我在这里更新了你的小提琴:

http://jsfiddle.net/omerio/3bu6nybk/2/