以下是我的当前代码:
import {Page} from 'ionic-angular';
import {BLE} from 'ionic-native';
@Page({
templateUrl: 'build/pages/list/list.html'
})
export class ListPage {
devices: Array<{name:string, id: string}>;
constructor() {
this.devices=[];
}
startScan (){
this.devices = []; // This "this" exists and works fine
BLE.scan([],5).subscribe(
(device)=>{
if(device.name){
this.devices.push({name:device.name,id:device.id}); // this.devices does not exists
}
},
(err) => {
console.log(JSON.stringify(err));
}
);
}
connectToDevice(device){
BLE.connect(device.id).subscribe(success=>{
console.log(JSON.stringify(success));
});
}
}
当调用startScan函数时,我试图将返回的设备推送到阵列,但是,此.devices不可用。我试着保存这个(自我=这个),但仍然没有运气。谁能帮我了解我错过了什么?
更新:设置
var self = this;
在startScan()的顶部,然后在.subscribe回调中使用它就是答案!
2条答案
按热度按时间3qpi33ja1#
此.设备不可用
一个共同的问题。将
startScan
更改为箭头函数:更多
https://basarat.gitbook.io/typescript/future-javascript/arrow-functions
2ic8powd2#
下面是我的代码,它添加字符到HTML文本区域与按钮点击事件。
HTML
TS
它工作正常。