我正在使用淘汰赛和 TypeScript 。
我收到一个错误:
AppViewModel.prototype.setActive = function (data, event) {
this.active(data);
};
从此 TypeScript 文件:
export class AppViewModel {
///Properties
projects = projects;
error = ko.observable();
active = ko.observable();
//setActive: (data,e)=>void;
///Constructor
constructor()
{
this.active = ko.observable();
DataContext.getProjects(this.projects, this.error);
}
isActive(data)
{
return this.active() == data;
}
setActive(data, event) {
this.active(data);
}
}
Object # 没有方法'active',它的绑定是这样的:
<li class="nav-header">Projects</li>
<!-- ko foreach: projects -->
<li class="">
<a href="#" data-bind="click: $parent.setActive, css: { active: ($parent.isActive($data)) }">
<i class="icon-pencil"></i>
<span style="padding-right: 15px;" data-bind="text: title"></span>
</a>
</li>
<!-- /ko -->
$Parent 应该是 AppViewModel。在我点击链接之前它一直有效。
我不是 100% 确定错误是否与我不理解的绑定或打字稿生成的函数有关,并且处理不当。
原型函数中的 this 是指对象本身吗?还是功能范围?