我遇到了使用ES6类的绑定上下文的问题。ES6类和淘汰赛foreach
这里是一个jsfiddle来解释。
当我在类中声明点击功能就像
class viewModel {
constructor() {
this.data = ko.observableArray([{ firstName: "phil" }, { firstName: "person" }]);
this.selectedPerson = ko.observable("none selected");
}
selectUser(data){
console.log(this);
this.selectedPerson(data.firstName);
}
}
我必须提供在标记像这样绑定:<div data-bind="text: firstName, click: $parent.selectUser.bind($parent)">
,但是当我在构造函数中声明点击我不不得不提供上下文。
有人知道为什么吗?
我建议使用https://babeljs.io/docs/plugins/transform-class-properties/。用这个你可以写一个方法作为箭头函数 –