Как изменить значение импортируемого объекта в Typescript? - PullRequest
0 голосов
/ 02 июня 2018

Я пытался включить конфигурацию MQTT-брокера с помощью плагина ngx-mqtt в ionic 3. Я использую переменную для конфигурации брокера.По моему 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

Итак, подскажите, пожалуйста, как мне изменить значение объекта?

1 Ответ

0 голосов
/ 02 июня 2018

Вы не хотите реэкспортировать обратно импортированный объект.Клиент и поставщик уже совместно используют общий объект MQTT_SERVICE_OPTIONS.Вы бы предпочли изменить содержимое этого общего объекта, например:

saveBroker() {
     console.log(MQTT_SERVICE_OPTIONS);
     MQTT_SERVICE_OPTIONS.hostname = this.hostname;
     MQTT_SERVICE_OPTIONS.port = this.port;
     MQTT_SERVICE_OPTIONS.path = this.protocol;
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...