Vue + Laravel: Строка становится раздетой, когда она передается как пропеллер в файле лезвия. - PullRequest
0 голосов
/ 10 мая 2019

У меня есть блейд-файл со следующим:

$customerId = time() . rand(0, 100000) . '-' . $redItem->id;

<Flashbar
     :user-ref={!! json_encode($customerId) !!}
/>

Моя проблема в том, что компонент Flashbar настроен так, чтобы принимать userRef в качестве реквизита с типом String, но он удаляет все после time() . rand(0, 100000) ... он не включает - и идентификатор redItem-> впоследствии .
Я проверял реквизиты с помощью Vue devtools на Flashbar, и это только время и случайное число.

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Это строка, нет необходимости кодировать ее в json.и нет причины связывать его как не переменную из экземпляра vue.


<Flashbar user-ref="{{ $customerId }}" />

0 голосов
/ 10 мая 2019

Как указано в комментарии ниже, я думаю, что это может произойти, потому что vue интерпретирует ваш $customerId как уравнение.

$customerId = time() . rand(0, 100000) . '-' . $redItem->id;

Если бы идентификатор $redItem был равен 1, это было бысгенерировать что-то вроде: 155743641671228-1

Однако, когда вы привязываете v-реквизит (для этого вы используете сокращенную запись:), любой входящий в него ввод сначала будет интерпретирован javascript.То, что вы видите, когда проверяете свою опору, представляет собой сумму: 155743641671228 - 1 (155743641671227).

Следовательно, если вы заменяете '-' на что-то, что не является оператором javascript, при генерацииВаш идентификатор клиента - он должен работать.

Например:

$customerId = time() . rand(0, 100000) . ':' . $redItem->id;

Я бы подумал, что удаление v-bind также приведет к тому, что это сработает, но я могу ошибаться ...

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...