Vue.js интерфейс для SketchUp - PullRequest
       29

Vue.js интерфейс для SketchUp

0 голосов
/ 20 ноября 2018

Sketchup использует HTML для своего расширения пользовательского интерфейса.Я пытаюсь сделать интерфейс с vue.js + vuetify.Sketchup может визуализировать страницу, но я не могу отправить данные в JavaScript.Sketchup отправляет данные в javascript, вызывая функцию и передавая данные.

Vue.js вызывает обратный вызов действия при его монтировании.Затем Sketchup выполняет функцию updateUI (data).В этот момент интерфейс выдает ошибку: Uncaught ReferenceError: updateUI не определен в index.html: 1

Это мой файл main.js, в котором инициализируется Vue и объявляется функция updateUI.

import Vue from 'vue'
import './plugins/vuetify'
import App from './App.vue'
import shared_data from './stores/shared_data';

function updateUI(data){
  shared_data.data.parameters = data.parameters;
}

Vue.config.productionTip = false

var gui = new Vue({
  render: h => h(App),
}).$mount('#app')

Это index.html после веб-пакета

<!DOCTYPE html>
<html lang=en>
   <head>
      <meta charset=utf-8>
      <meta http-equiv=X-UA-Compatible content="IE=edge">
      <meta name=viewport content="width=device-width,initial-scale=1">
      <link rel=icon href=/favicon.ico>
      <title>my-app</title>
      <link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900">
      <link rel=stylesheet href="https://fonts.googleapis.com/css?family=Material+Icons">
      <link href=C:/Users/**/my-app/dist/css/chunk-vendors.0c9ceaf8.css rel=preload as=style>
      <link href=C:/Users/**/my-app/dist/js/app.6b29f88e.js rel=preload as=script>
      <link href=C:/Users/**/my-app/dist/js/chunk-vendors.a37f46e5.js rel=preload as=script>
      <link href=C:/Users/**/my-app/dist/css/chunk-vendors.0c9ceaf8.css rel=stylesheet>
   </head>
   <body>
      <noscript><strong>We're sorry but my-app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript>
      <div id=app></div>
      <script src=C:/Users/**/my-app/dist/js/chunk-vendors.a37f46e5.js></script>
      <script src=C:/Users/**/my-app/dist/js/app.6b29f88e.js></script>
   </body>
</html>

1 Ответ

0 голосов
/ 06 февраля 2019

Попытайтесь добавить функцию, которую вы хотите вызвать, к объекту Window, убедившись, что она остается глобальной функцией и не помещается в анонимный модуль при сборке JS.

window.updateUI = function(data){
  shared_data.data.parameters = data.parameters;
}

Youможет также привести пример полного набора примеров в этом репозитории github: https://github.com/SketchUp/htmldialog-examples (Пример 4 представляет Vue.)

...