Получение значения Alpine JS внутри компонента blade?

#laravel #laravel-blade #alpine.js

Вопрос:

У меня есть петля x-for:

 <template x-for="item in items" :key="item.id">
 

Внутри шаблона я называю свой компонент лезвия:

 <x-card />
 

Как я могу передать vars из цикла Alpine JS в компонент blade?

Я видел это и пытался это реализовать:

 <template x-for="item in items" :key="item.id">
    <x-card ::title="item.title" />
    ....
 

Но я не могу вывести заголовок var внутри компонента blade.

Ответ №1:

AlpineJS-это JavaScript, следовательно, клиентская сторона. Блейд-это серверная часть. Подсказка, которую вы передали, описана в документах и предназначена только для того, чтобы предотвратить оценку оператора Blade, поскольку Blade также может обрабатывать переменные с одним двоеточием.

Если ваша цель-отобразить заголовок в виде текста на карточке, взгляните на x-текст. Вы должны быть в состоянии позвонить x-text="item.title" . :title следует установить атрибут заголовка для элемента.

Комментарии:

1. Я боюсь, что ваш ответ не отвечает на вопрос об альпийских вариациях компонентов лезвия.

2. Я не знаю, используете ли вы Livewire? Если так, то это было бы легко. В противном случае файлы cookie или запрос ajax на сервер могут позволить вам установить переменную в php и передать ее обратно в blade при повторном рендеринге. Как я уже сказал, ссылка, на которую вы ссылаетесь, делает не то, что вы, похоже, думаете, и Alpine не может просто «передавать» переменные (на стороне клиента ) серверу .