我正在编写一个MQTT应用程序,每个显示主题的UI元素都有一个类。但是,尽管我正确地调用了该方法,但是当我收到正确的主题时,我的UI却没有更新。
因此,一个类的定义如下:
class Solltemperatur {
constructor() {
this.obj = $('#solltemperatur').first();
this.max = 130;
this.min = 0;
this.set(0);
}
set(vStr) {
this.value = parseFloat(vStr).toFixed(1);
console.log("Empfange: " + this.value.toString());
$(this.obj).find('.stat-digit').first().text(this.value.toString() +"°C");
$(this.obj).find('.progress-bar').first().css( "width", (this.value/this.max*100).toFixed(1) + "%" );
}
get() {
this.str = $(this.obj).find('.stat-digit').first().text().replace('°C','');
return parseFloat(this.str);
}
}
我可以使用设置方法更改值。
在我的MQTT接收方法中,我正在爬取一系列主题及其链接的方法,以在类中运行这些方法。 添加一个新主题就像:
addSubscription("LightIntensity/x", solltemperatur.set);
function addSubscription(top, func)
{
arraySubscriptions.push({topic: top, f: func});
}
抓取是
//called when a message arrives
function onMessageArrived(message) {
var tmpTopic = message.destinationName.replace(subscribeTopic, "");
console.log("messageArrived:" + tmpTopic + " - " + message.payloadString);
var found = arraySubscriptions.filter(function(element) {
return element.topic == tmpTopic;
});
found.forEach(function(element) {
element.f(message.payloadString);
console.log(element);
});
}
因此,当收到主题“ LightIntensity / x”时,将正确调用该方法。但是该调用不会影响我的GUI。
你知道我的问题是什么吗?