coderisimo
@coderisimo

Почему ошибка "Property or method «item_» is not defined" в компоненте возникает в одном из двух мест использования?

Внимание , мистика ! Компонент используется в двух местах. Рендерится выпадающий список :

<select  class="form-control form-control-sm client-file"
                v-model="attachedFileType" id="file_type"
                name="file_type">
                     <option v-for="(item, index) in filesTypes" :value="item.id">
                           {{item.item_title}}
                    </option>
   </select>


и ошибка :


[Vue warn]: Property or method "item" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.


массив filesTypes из которого берется item имеется :

Vue.component('pdf-viewer-dialog', {
        props: ['file', 'clientId'],
        data: function () {
            return {
                componentHeight: '',
                modalId: '',
                pdfId: '',
                email_email: '',
                email_subject: '',
                email_text: '',
                attachedFileType: '',
                attachedFileDescription: '',
                filesTypes: <?= CommonHelper::getArrayArraysAsJsArray(\app\models\ClientFile::getTypes()); ?>
            }
        },


ладно бы все время была ошибка, ан нет. На тестовой странице (там простое приложение для тестирования) все ок, а на реальной (там много логики) - падает . Подскажите, какие могут быть здесь подводные камни? Как основное приложение может "испортить" компонент ? Куда копать ? В консоли ссылка на самое начало , что , конечно ОЧЕНЬ информативно.
5d15055f685f5294300111.jpeg

Спасибо
  • Вопрос задан
  • 361 просмотр
Решения вопроса 1
coderisimo
@coderisimo Автор вопроса, куратор тега JavaScript
Решение, может, кому пригодится

попробуйте использовать вместо :
<script type="text/x-template" id="simple-dictionary-dialog-template">


вот такое подключение шаблона :
template: `здесь тело шаблона`

я имею ввиду именно синтаксис с косыми кавычками.
это не слишком удобно, ибо IDE не работает с таким HTML адекватно. Но, можно использовать php переменную :

template: `<?= $template ?>` 
//  $template получаю  ob_get_clean() , зато все на одной странице и html  полноценно форматируется и редактируется IDE


или просто не использовать костыли , а собирать все сборщиками.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы