L'utilisation de JavaScript pour afficher Laravel est Variable
Dans mon code j'utilise typeahead.js. J'utilise Laravel 5 et j'ai besoin de remplacer la var states
avec mon {{ $jobs }}
variable. J'ai besoin de la liste de tous les Titres d'Emploi en tant que tableau.
Dans mon contrôleur, j'ai
$jobs = Job::all(['job_title']);
Je sais que la méthode de boucle en javascript mais je ne sais pas comment le "lien" ma lame de la variable dans le code javascript. Quelqu'un sait comment?
J'ai essayé, dans my.js
var jobs = {{ $jobs }}
Mais qui ne fonctionneront pas.
OriginalL'auteur Sylar | 2015-03-27
Vous devez vous connecter pour publier un commentaire.
Pour les plus complexes des types de variables comme des tableaux votre meilleur pari est de le convertir en JSON, en écho à votre modèle et de le décoder en JavaScript. Comme ceci:
Remarque que PHP doit courir sur ce code pour le faire fonctionner. Dans ce cas, vous auriez à le mettre à l'intérieur de votre Lame de modèle. Si vous avez votre code JavaScript dans un ou plusieurs fichiers séparés (ce qui est bon!) vous pouvez simplement ajouter une ligne balise de script sur votre modèle où vous passez vos variables. (Assurez-vous qu'il fonctionne avant le reste de votre code JavaScript. Généralement
document.ready
est la réponse à cette)Si vous n'aimez pas l'idée de le faire comme cela, je vous suggère d'aller chercher les données dans une autre requête ajax.
SyntaxError: JSON.parse: expected property name or '}' at line 1 column 2 of the JSON data
Vous pouvez prendre un coup d'oeil au code source de la page et de voir ce qui est réellement transmis à
JSON.parse
?Il souligne
var jobs = JSON.parse("{{ json_encode($jobs) }}")
Mais c'est à l'intérieur d'une lame de modèle n'est-il pas?
ne pouvez-vous pas simplement
var jobs = {!! json_encode($jobs); !!};
?OriginalL'auteur lukasgeiter
Cela fonctionne pour moi
OriginalL'auteur Karim Samir
Juste pour ajouter à ci-dessus :
var jobs = JSON.parse("{{ json_encode($jobs) }}");
sera de retour échappé à des entités html ,donc vous ne serez pas en mesure de boucle de plus de l'objet json en javascript , pour résoudre ce problème, veuillez utiliser ci-dessous :
var jobs = JSON.parse("{!! json_encode($jobs) !!}");
ou
var jobs = JSON.parse(<?php echo json_encode($jobs); ?>);
OriginalL'auteur Jimmy Obonyo Abor