我想知道有一個更好的方法來實現我將在下面描述的內容。在Angular.js中更新藍牙低功耗設備屬性的正確方法是什麼?
比方說,我有我加載到一個陣列幾相同藍牙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回調返回一個設備對象,該對象的我使用從陣列搶我的設備的ID:
onConnectCallback(device){
var arrayDevice = getDeviceByID(device.id);
}
然後我繼續根據需要在各個工廠像這樣來更新屬性:
var updateAcceleration = function(arrayDevice){
arrayDevice.acceleration = someValue;
};
這是發生在工廠所以$範圍不可用。相反,我使用$ rootScope隨處可見,但由於應用程序非常龐大且複雜,部分原因是我將模型綁定到界面的方式非常難以管理。
我的問題是,有沒有更好的方式來更新我的用戶界面,有一箇中央BLE設備對象?
非常感謝