Я использую 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?