【发布时间】:2021-08-27 13:26:50
【问题描述】:
我正在为我的网络应用程序使用 Angular,并且我的一个页面上需要蓝牙。 我正在使用 loginov-rocks/bluetooth-terminal(https://github.com/loginov-rocks/bluetooth-terminal) 进行蓝牙连接,它可以工作,我可以连接我的设备并从中查看数据。现在我遇到的问题是我无法从我的接收函数获取数据到我的角度组件,我可以将数据打印到控制台,但这不是我想要的,我想解析我的数据并在我的角度组件中设置一些变量它。这是我的代码:
let bluetooth = new BluetoothTerminal();
bluetooth.receive = function (data) {
console.log(data);
//i want to call ParseBtData here from my angular component to parse data
//or somehow send data and cach it for parsing inside my component
};
export class GpsAppComponent extends AppComponentBase implements OnInit
{
//all the angular stuff
parseBtData(data) {
//parse my BT data and set some variables inside my component...
};
}
我已经尝试在组件内部制作 BluetoothTerminal,但我仍然无法调用任何函数来解析我的数据。甚至有可能做到这一点,还是有其他方法可以解决我的问题?
【问题讨论】:
-
只是分享解决方法的想法,创建一些全局对象或变量并为其分配值。
-
您应该尝试绑定您的上下文(将
this绑定到您的蓝牙接收函数),这样您应该能够调用组件类中的函数。并将您的 bluetooth.receive 放在您的类中,例如在其构造函数中。这里有一些这样做的例子:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
问题是你在angular的更新周期之外使用了一个函数,基本上angular不知道任何不在其生态系统内的东西,你必须创建一个服务并且必须从你的组件中调用该服务.
标签: javascript angular web-component web-bluetooth