Создайте HTML Файла, которая может вызвать или ответить на изменения данных

Вы можете включить визуализацию или виджеты сторонних производителей в свое приложение, создав в нем компонент HTML UI, который отображает HTML, JavaScript®, или содержимое CSS из HTML файла. Когда вы добавляете компонент HTML UI к своему приложению, чтобы позволить компоненту задать данные или ответить на изменения данных между MATLAB® и JavaScript, включите setup функция в вашем HTML файл. В пределах setup можно подключить HTML- содержимое к компоненту пользовательского интерфейса HTML в MATLAB.

Включите Setup функцию в свой HTML Файла

Чтобы подключить компонент HTML UI MATLAB в вашем приложении к содержимому в HTML- файле, создайте setup функция, которая определяет и инициализирует локальное htmlComponent Объект JavaScript. Компонент пользовательского интерфейса HTML в MATLAB и htmlComponent Объект JavaScript имеет Data свойства, которые синхронизируются друг с другом. The setup функция требуется, если вы хотите задать данные из MATLAB или JavaScript и ответить на изменения в данных, которые происходят на противоположной стороне.

The setup функция вызывается, когда происходит одно из следующих событий:

  • Компонент пользовательского интерфейса HTML создается на рисунке, и содержимое полностью загружено.

  • The HTMLSource свойство изменяется на новое значение.

The setup функция вызывается только в том случае, если она задана. The htmlComponent Объект JavaScript доступен только из setup функция.

The htmlComponent Объект JavaScript также имеет addEventListener и removeEventListener свойства. Используйте эти свойства для прослушивания DataChanged события из MATLAB. Значение данных о событиях от DataChanged события обеспечивают исходный код htmlComponent Объект JavaScript со старыми и новыми данными. Для получения дополнительной информации о addEventListener и removeEventListener методы, см. EventTarget.addEventListener () и EventTarget.removeEventListener () на Mozilla® Веб-документы MDN.

Пример HTML Файла

Этот пример показывает HTML файла с необходимой setup функция, позволяющая MATLAB и JavaScript реагировать на изменения данных друг от друга.

В пределах setup function, один раз, htmlComponent Объект JavaScript был инициализирован, вы задаете поведение компонента. Для примера:

  • Получите начальное значение Data свойство из компонента пользовательского интерфейса HTML в MATLAB.

  • Инициализируйте HTML или JavaScript путем обновления элементов DOM или виджетов JavaScript.

  • Слушайте "DataChanged" события в MATLAB и кодируйте ответ JavaScript. Например, вы можете обновить свой HTML или JavaScript новыми данными, которые инициировали событие.

  • Создайте функцию, которая устанавливает Data свойство htmlComponent Объект JavaScript и запускает DataChangedFcn коллбэк в MATLAB.

После setup вы можете использовать свои сторонние библиотеки JavaScript, как рекомендует библиотечная документация.

Вот пример HTML файла, sampleHTMLFile.html.

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
		
        function setup(htmlComponent) {
            console.log("Setup called:", htmlComponent);

            // Get the initial 'Data' value from MATLAB

	    var initialData = htmlComponent.Data;
            console.log("Initial MATLAB Data", initialData);
			
	    // Initialize your HTML or JavaScript here
	    // Update things like DOM elements or JavaScript widgets
          
            var dom = document.getElementById("Content");
            dom.textContent = initialData;
			
	    // Code response to data changes in MATLAB
          
            htmlComponent.addEventListener("DataChanged", function (event) {
                var changedData = htmlComponent.Data;
                console.log("New Data from MATLAB", changedData);
				
            // Update your HTML or JavaScript with the new data
                var dom = document.getElementById("Content");
                dom.textContent = changedData;

        });

			
            // Update 'Data' in MATLAB and trigger
	    // the 'DataChangedFcn' callback function
            
        function updateData(newData) {
            htmlComponent.Data = newData;
            console.log("Changing Data in HTML", newData)
        }
        }
    </script>
</head>

<body>
    <div style="font-family:sans-serif;">
        <span style="font-weight:bold;"> The data from MATLAB will display here:</span><br />
        <div id ="Content"></div>
    </div>

	
    <!Reference supporting files here>
   
    <script src=""></script>
    <link rel="stylesheet" type="text/css" href="">
    <link rel="icon" type="image/png" href="">

</body>

</html>

Отладка HTML Файла

Если вы создаете HTML компонента, который работает не так, как ожидалось, или хотите знать, как выглядят ваши данные после завершения преобразования между MATLAB и JavaScript, откройте HTML файла в вашем системном браузере. Используя ваш браузер Developer Tools (DevTools), можно задать точки останова, чтобы протестировать фрагменты своего setup функция. Когда вы отлаживаете HTML файла через системный браузер, необходимо симулировать соединение между MATLAB и JavaScript, что setup функция обеспечивает.

Симулируйте отправку данных из MATLAB на JavaScript

В этом примере показов, как симулировать, как MATLAB отправляет данные на JavaScript, чтобы вы могли отлаживать HTML файла.

Откройте этот пример в MATLAB. В браузере Текущей папки щелкните правой кнопкой мыши файл с именем sampleHTMLFile.html и выберите Open Outside MATLAB. Откроется HTML файла в вашем системном браузере.

  1. В MATLAB запустите этот код, чтобы преобразовать массив ячеек MATLAB из векторов символов в строку JSON. Скопируйте возвращенное строковое значение в буфер обмена.

    value = {'one';'two';'three'};
    jsontxt = jsonencode(value)
    jsontxt = 
    '["one","two","three"]'
    
  2. В DevTools вашего системного браузера откройте файл, чтобы просмотреть код. Создайте точку прерывания в линейном 16, где dom.textContent = initialData;.

  3. Откройте консоль DevTools и создайте htmlComponent Объект JavaScript. Используйте JSON.parse метод для преобразования только что сгенерированной в MATLAB строки JSON в объект JavaScript и хранения ее в Data свойство htmlComponent объект.

    var htmlComponent = {
        Data: JSON.parse('["one","two","three"]'), // JSON formatted text from MATLAB data
        addEventListener: function() {console.log("addEventListener called with: ", arguments)}
    };
    
  4. Находясь в консоли DevTools, вызовите setup функция. Когда вы возобновляете выполнение setup function, данные появляются на странице HTML в DevTools.

    setup(htmlComponent)
    

Можно также симулировать "DataChanged" коллбэк прослушивателя посредством кодирования JSON и анализа данных из MATLAB в код JavaScript.

Симулируйте отправку данных из JavaScript в MATLAB

Если вы хотите отлажить, как данные отправляются из JavaScript в MATLAB, используйте JSON.stringify метод для преобразования объекта JavaScript в JSON-форматированную строку. Затем в MATLAB используйте jsondecode функция для преобразования этой строки в данные MATLAB.

См. также

Функции

Свойства

Похожие темы