Использование данных из API для заполнения Quasar Tree - проблема с отправкой функции обработчика - PullRequest
0 голосов
/ 15 апреля 2020

Я использую Quasar для создания дерева:

<q-tree v-if="tree"
  :nodes="tree"
  node-key="label"
  default-expand-all
/>

Если я вручную ввожу данные узла и использую свойство узла-обработчика, чтобы применить функцию щелчка к моим узлам, это прекрасно работает:

data () {
    return {
      tree: [ { id: 7, label: 'Master Stateroom', icon: 'crop_3_2', children: [ { id: 4, label: 'Center Bilge Compartment', icon: 'crop_3_2', handler: (node) => this.goCompartment(node) } ], handler: (node) => this.goRoom(node) } ]
    }
  },

и мои основы c, методы тестирования:

methods: {
  goRoom (room) {
    alert(room.id)
  },
  goCompartment (compartment) {
    alert(compartment.label)
  }
}

Все хорошо, однако я хочу загрузить свои узлы из базы данных, и у меня возникают проблемы с получением Функция-обработчик для работы - это просто строка.

Выдержка из моего API:

return [ 'id' => $this->id, 'label' => $this->name, 'icon' => 'crop_3_2', 'children' => $children, 'handler' => '(node) => this.goRoom(node)' ];

Я знаю, что не хочу, чтобы там была просто строка, ее нужно оценивать как функция. Если я просматриваю данные в Vue Devtools, я вижу, что обработчик, переданный из моего API, является просто строкой, а локально жестко закодированная версия отображается как функция.

У любого есть советы по правильной передаче этого кода. от API до компонента vue?

...