我正在使用Angualr,并具有以下打字稿功能:
public watchLocationPath() {
this.$scope.$watch(() =>
this.$location.path(), function(value) {this.console.log(value);
});
}
this
对象是undefined
,因为它不在范围内。要解决此问题,我可以将现有的function(value)
更改为使用箭头符号(然后this
对象将在范围内)。
但是,当我将其转换为以下内容时,
this.$scope.$watch(() =>
this.$location.path(), (value) => {this.console.log(value);
});
我在编译时出错。
console
任何建议欢迎。
答案 0 :(得分:3)
您不需要大括号,也不需要this
。
this.$scope.$watch(
() => this.$location.path(),
value => console.log(value)
);
答案 1 :(得分:0)
无需将location.path
包装到另一个函数中。您也可以不使用console
this.
// no need to wrap single parameter like `(value)` for your tsLint config.
this.$scope.$watch(this.$location.path, value =>{
//this from parent
})