我试图在离子3中使用ngx-mqtt插件包含MQTT代理配置。我正在使用变量进行代理配置。在我的app.module.ts
中,就像这样。
MQTT_SERVICE_OPTIONS = {
hostname: '172.30.66.232',
port: 9001,
path: '/ws'
};
export { MQTT_SERVICE_OPTIONS };
export function mqttServiceFactory() {
return new MqttService(MQTT_SERVICE_OPTIONS);
}
在我的home.ts
页面中,我从MQTT获取数据。
this._mqttService.observe('roomData').subscribe((message1: IMqttMessage) => {
console.log(this.message1);
});
一切都很好。现在我需要通过动态绑定输入字段中的对象值来更改导出的变量MQTT_SERVICE_OPTIONS
值。
所以我试图在home.ts
中更改其值:
import { MQTT_SERVICE_OPTIONS } from '../../app/app.module'
saveBroker() {
console.log(MQTT_SERVICE_OPTIONS);
export MQTT_SERVICE_OPTIONS = {
hostname: this.hostname,
port: this.port,
path: this.protocol
};
}
在这里,我可以正确地控制对象。但无法更改其值并将其导出。这给我一个错误:ERROR ReferenceError: MQTT_SERVICE_OPTIONS is not defined
那么,请建议我如何更改对象的值?
答案 0 :(得分:0)
您不希望重新导出导入的对象。客户端和提供者已共享一个公共MQTT_SERVICE_OPTIONS对象。您更愿意更改此共享对象的内容,例如:
$array1 = [2, 3, 4, 6];
$array2 = [
["id_sabor" => 1, "chocolate" => "N"],
["id_sabor" => 2, "chocolate" => "N"],
["id_sabor" => 3, "chocolate" => "S"],
["id_sabor" => 4, "chocolate" => "N"],
["id_sabor" => 5, "chocolate" => "S"],
["id_sabor" => 6, "chocolate" => "N"]
];
$array2 = array_reduce($array2, function($carry, $item) use ($array1){
if (in_array($item["id_sabor"], $array1)) {
if ($item["chocolate"] === "S") {
$item["costo_extra"] = 25;
}
$carry[] = $item;
}
return $carry;
});
我希望这对你有帮助。