【发布时间】:2014-10-22 14:41:35
【问题描述】:
我有一个 typescript 类 B,它继承 typescript 类 A。
A 类有一个名为 Model 的 KnockoutObservable。
A 类有一个名为 GetSomeNumber() 的函数,它返回一个数字
export class A{
Model: KnockoutObservable<C>;
constructor(){ this.Model = ko.observable(new C()); }
GetSomeNumber (): number { return 1; }
}
类 B 扩展类 A 并覆盖函数 GetSomeNumber()。
export class B extends A{
GetSomeNumber(): number { return 2; }
}
在 Knockout 绑定中,我在绑定到 B 类实例上的模型的元素上引用 $parent.GetSomeNumber()。
我收到以下错误...
无法获取未定义或空引用的属性“GetSomeNumber”
但是,如果我从 B 类中删除覆盖,它确实有效。
【问题讨论】:
-
另外,当敲除绑定时,为了确保您获得正确的
this,有时需要将您的函数调用包装在匿名函数中,例如data-bind="click: function () { $parent.doSomething(); }。