我正在使用navigator.getBattery()实用程序来检查笔记本电脑的电池状态并返回一个承诺。下面是我的代码的一个小例子。
CODE:
Template.Sidebar.onCreated(function(){
this.isBatteryCharing = new ReactiveVar(0);
navigator.getBattery().then(function(battery) {
battery.addEventListener('chargingchange', function(){
if(battery.charging){
// access the template variable here.
// this.isBatteryCharing.set(battery.charging)
}
});
});
});
我收到的控制台错误如下:
Uncaught (in promise) TypeError: Cannot read property 'set' of undefined
如何访问promise this.isBatteryCharing
中的模板变量navigator.getBattery()
?
答案 0 :(得分:1)
您可以使用arrow functions来保留范围:
navigator.getBattery().then((battery) => {
battery.addEventListener('chargingchange', () => {
if(battery.charging){
// access the template variable here.
// this.isBatteryCharing.set(battery.charging)
}
});
});
这样,this
仍然引用原始对象。