以下で説明する内容を達成するためのより良い方法があることを知りたいと思います。Angular.jsのBluetooth Low-Energyデバイスのプロパティを更新する正しい方法は何ですか?
のは私が配列にロード数の同一のBluetooth LEデバイスを持っているとしましょう:
var bleDevices = [];
上記の特性を利用して、ユーザインターフェース上で更新する必要があるいくつかの指標とスイッチがあります。デバイスがそうようDOMに取り付けられている。
$scope.devices = getAllDevices();
各デバイスは、物理的な周辺機器の現在の状態を表し、それに関連付けられたプロパティの束を有します。
onDeviceDiscoveryCallback(device){
addDeviceToArray({
/** The first three properties are returned by the callback */
name:device.name,
rssi:device.rssi,
id:device.id
/** The rest of the object contains developer defined properties */
acceleration:null,
temperature:null,
brightness:null,
.
.
.
})
}
上記のデバイスでアレイを充填した後、デバイスに接続します。 onConnectコールバックは、デバイスオブジェクト、Iは、アレイから自分のデバイスをつかむために使用したのIDを返す:
onConnectCallback(device){
var arrayDevice = getDeviceByID(device.id);
}
私はそのようになど、さまざまな工場全体に必要とされる特性を更新するために進む。
var updateAcceleration = function(arrayDevice){
arrayDevice.acceleration = someValue;
};
これは工場で起こっているので、$ scopeは利用できません。代わりに、私はどこでも$ rootScopeを使用しているように見えますが、アプリケーションをかなり大きく複雑にするのは非常に扱いにくいのですが、モデルをインタフェースにバインドする方法が原因です。
私の質問は、中央のBLEデバイスオブジェクトを使用してユーザーインターフェイスを更新するより良い方法はありますか?正直に言うと
感謝