Laravel Blade Javascript
#A Blade directive to export variables to JavaScript
This package contains a Blade directive to export values to JavaScript.
Here's an example of how it can be used:
@javascript('key', 'value')
The rendered view will output:
<script>window['key'] = 'value';</script>
So in your browser you now have access to a key variable:
console.log(key); //outputs "value"
Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.
#Support us
We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.
We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.
#Installation
You can install the package via composer:
composer require spatie/laravel-blade-javascript
The package will automatically register itself.
Optionally the config file can be published with
php artisan vendor:publish --provider="Spatie\BladeJavaScript\BladeJavaScriptServiceProvider" --tag="config"
This is the contents of the published config file:
return [ /** * All passed values will be present in this JavaScript namespace. Set this to an empty string * to use the window object. */ 'namespace' => '', ];
If you want to customize the generated <script> tag you can publish and override the used view.
php artisan vendor:publish --provider="Spatie\BladeJavaScript\BladeJavaScriptServiceProvider" --tag="views"
After this you can edit the published view resources/views/vendor/bladeJavaScript/index.blade.php. This is usefull to add the type or a CSP nonce.
#Usage
With the package installed you can make use of a @javascript Blade directive.
@javascript('key', 'value')
The rendered view will output:
<script>key = 'value';</script>
You can also use a single argument:
@javascript(['key' => 'value'])
This will also output:
<script>key = 'value';</script>
When setting the namespace to eg js in the config file this will be the output:
<script>window['js'] = window['js'] || {};js['key'] = 'value';</script>
#Changelog
Please see CHANGELOG for more information what has changed recently.
#Testing
composer test
#Contributing
Please see CONTRIBUTING for details.
#Security
If you've found a bug regarding security please mail security@spatie.be instead of using the issue tracker.
#Credits
This repository contains some code from the laracasts/PHP-Vars-To-Js-Transformer package written by Jeffrey Way.
#License
The MIT License (MIT). Please see License File for more information.
