My code is like this :
<multiple-photo-product :product="{{ isset($product) ? $product : '' }}"></multiple-photo-product>
When the code runs it throws an error:
SyntaxError: Unexpected token } in
But if the code is like this:
<multiple-photo-product product="{{ isset($product) ? $product : '' }}"></multiple-photo-product>
It doesn't throw an error.
I add :
, so that the data is sent as an object.
If it does not use :
, the data is sent as a string.
How can I solve it?
As you write your JavaScript application, the unexpected token error always occurs because JavaScript expected a specific syntax that's not fulfilled by your current code. You can generally fix the error by removing or adding a specific JavaScript language symbol to your code.
The JavaScript exceptions "unexpected token" occur when a specific language construct was expected, but something else was provided. This might be a simple typo.
The problem lies in the fact that if the php variable $product
is not set (i.e equals to null
or ""
), then Vue will try to bind the prop :product
with ''
which ultimately results to an error (like trying to make a :product=""
bind)
Try the following:
<multiple-photo-product :product="{{ isset($product) ? $product : '""' }}"></multiple-photo-product>
Notice the double quotes ""
surrounded by the single quotes. This will say to Vue to bind the product
prop with an empty string, in case php's $product
variable is not set.
Please also have a look here. You may find it helpful. The key point to recall is that v-bind
expects valid javascript expressions, that is the interpolated value (i.e. whatever is inside the Blade's curly braces {{}}
) must be a valid javascript expression too
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With