Неопределенная переменная Alpine.js: отправка

Я использую alpine.jsв моем приложении laravel 7.x. Я также используюLaravelCollective/htmlчтобы построить очень простую форму. Идея здесь в том, что я пытаюсь изменитьhref моего якорного тега на основе того, что selectввод выбран. Я получаю следующую ошибку:Undefined variable: dispatch

Вот мой HTML/ код:

<div x-data="{ url: '{{ route('dogs', ['dog'=>$selectedDog]) }}' }" class="px-4 py-5 sm:p-6">       
          <div class="mt-2">
            {{ Form::select('dogs', $dogs, null, 
              ['class' => 'mt-1 sm:leading-5',
              'x-on:change' => "$dispatch('selection-change', { value: $event.target.value })"]) }}
          </div>
          <div class="mt-6">
            <span class="block w-full rounded-md shadow-sm">
              <a 
                href="{{ route('dog', ['dog'=>$selectedDog]) }}" 
                x-bind:href="url"
                x-on:selection-change.window = "alert('test');"
                class="w-full"> 
                  Go to Dog
              </a>
            </span>
          </div>
</div>

Изменение select ввод должен вызвать x-on:selection-change.window событие связано с windowобъект в теге привязки. похоже, что это$dispatch есть проблемы.

1 ответ

Решение

PHP видит $dispatch и думая, что это переменная PHP, возможно, нужно избежать $ или используйте строки, где интерполяция не разрешена

Или:

  • побег $: 'x-on:change' => "\$dispatch('selection-change', { value: \$event.target.value })"
  • использовать строку одинарной кавычки: 'x-on:change' => '$dispatch("selection-change", { value: $event.target.value })'
Другие вопросы по тегам