Прежде всего, я программирую noob, я пытаюсь создать ионное приложение для отправки команд в arduino через bluetooth.Изменить цвет кнопки после успешной функции обратного вызова выполняется в Ionic/Angular 2
<ion-content padding>
<div padding>
<div ion-button clear block medium>
<a ion-button color="energetic" outline full (click)="tab=1" [outline]="tab==2"> Slider</a>
<a ion-button color="danger" full [outline]="tab==1" (click)="tab=2"> Position</a>
</div>
</div>
<div [hidden]="tab==2">
<ion-card>
<ion-card-header text-center>
<h2>Turn Light ON/OFF</h2>
</ion-card-header>
<ion-card-content>
<div text-center>
<button ion-button icon-left color="primary" round (click)="toggle()" large>
<ion-icon name="ios-sunny-outline"></ion-icon>
ON/OFF
<ion-icon name="sunny"></ion-icon>
</button>
</div>
<ion-list>
<ion-item>
<ion-label> OFF/ON </ion-label>
<ion-toggle checked="false" (ionChange)="toggle()"></ion-toggle>
</ion-item>
</ion-list>
</ion-card-content>
</ion-card>
</div>
<div [hidden]="tab==1">
<div text-center>
<button ion-button icon-left color="dark" round outline (click)="Enable()">
<ion-icon name="bluetooth" color="danger"></ion-icon>
Show Bluetooth List
</button>
</div>
<ion-card>
<ion-list *ngFor="let list of lists">
<button ion-item (click)="connect(list.address)">
<ion-icon name="bluetooth" item-left></ion-icon>
{{list.name}}
</button>
</ion-list>
</ion-card>
<ion-card>
<ion-card-header text-center color="danger">
Status
</ion-card-header>
<ion-card-content text-center>
{{status}}
</ion-card-content>
</ion-card>
</div>
</ion-content>
Эта функция итерация через спаренные устройства и всякий раз, когда я нажимаю на определенной кнопке/устройстве, подключение() функция вызывается, и на связи вызова успеха назад функцию excuted.
@Component({
selector: 'page-home',
templateUrl: 'home.html',
})
export class HomePage {
constructor(public navCtrl: NavController) {
}
public tog: any = 'OFF';
public tab= 1;
toggle() {
switch (this.tog) {
case 'ON':
this.Write('OFF');
this.tog = 'OFF';
break;
case 'OFF':
this.Write('ON');
this.tog = 'ON';
default:
break;
}
}
status : any;
lists : any ;
Enable(){
BluetoothSerial.isEnabled().then((data)=> {
this.status = 'Bluetooth is ON';
BluetoothSerial.list().then((allDevices) => {
this.lists = allDevices;
});
BluetoothSerial.discoverUnpaired().then((devices)=>{
this.lists.push(devices);
this.status= 'discovered some devices';
}).catch((err)=> { this.status= 'No devices were found'; });
}).catch((error)=>{ this.status='Bluetooth is not turned on'; });
}
connect(mac){
BluetoothSerial.connect(mac).subscribe((success)=>{
this.status= 'Bluetooth connection is successful with'+ success;
});
}
Write (msg){
BluetoothSerial.write(msg).then(res =>{
this.status = ' This has been written :' + res;
}).catch(res=> function(){
this.status = ' This has not been written :' + res;
});
}
}
Проблема: .subscribe не обновляет переменную this.status на виду, если не перейти на другую страницу и вернуться к нему снова.
Запрос: Я хотел бы показать пользователю, что соединение с выбранным устройством было выполнено путем изменения цвета выбранной кнопки. Кроме того, пока он подключается к устройству Bluetooth, я хотел бы показать какое-то уведомление о том, что он подключается к устройству, пожалуйста, подождите? Как я могу это реализовать?
Буду признателен за любую помощь!
Благодаря
Спасибо вам так много мата! Однако я не понял, как будет работать условный переменный статус? [ngStyle] будет применяться к каждому объекту в устройстве (может быть 0 и может быть 100 устройств), я только хочу изменить цвет выбранного устройства и только после обратного вызова .susbcribe ... ?? Спасибо –
Я не понимаю. Является ли кнопка одним элементом на шаблоне страницы html или является компонентом (с его собственным компонентом * .ts-файла и компонентом html-файла компонента), который вы используете несколько раз в своем шаблоне страницы html или используете несколько кнопок времени на той же странице путем копирования/вставки одного и того же html-кода на странице html-шаблона? Возможно, вам нужно разместить больше информации о своем коде и его организации. – nyluje
Это компонент, который имеет собственный файл .ts и .component.html. также при переходе по элементам списка каждый элемент генерирует элемент кнопки в