我从控制器将php $var传递给Javascript。$var从DB中获取地址。我把它写在Javascript里。现在我可以看到控制台中的地址了。没有问题,我不知道为什么语法错误也会弹出。
我就是这样把它插入到JS中的。
function initMap(){
var options = {
zoom:8,
center:
'{!! $estates[0]->address !!}'
}
var map = new google.maps.Map(document.getElementById("map"), options);
var marker = new google.maps.Marker({
position:
@foreach($estates as $addr)
'{!! $addr->address !!}',
@endforeach
map:map
});
var infoWindow = new google.maps.InfoWindow({
content:'content here'
});
marker.addListener('click', function () {
infoWindow.open(map, marker);
});
}
我的程序运行时没有问题,我可以在控制台中看到地址,但也可以在这一行中看到:'{!! $estates[0]->address !!}'
错误也会弹出。实际上,我看到的是地址,不是这一行。
错误是:
未登录的SyntaxError:无效的或意外的令牌
你有什么想法吗?我是不是犯了语法错误。但是,如果这样做,我如何在控制台检索地址呢?
在同一行中也有此错误:
未定义变量:属性(视图: /var/www/html/laravel/resources/views/layouts/app.blade.php) (视图: /var/www/html/laravel/resources/views/layouts/app.blade.php) )
控制器
public function index()
{
$estates = DB::table("allestates")
->get();
return view("home", compact('estates'));
}
这个话题和重复的不同。这不是纯JS我是和Laravel一起工作的。
发布于 2018-12-04 00:46:39
我认为其中一个地址包含'
字符。为避免出现这种情况,请使用addslashes函数。您可以在控制器中这样做:
public function index()
{
$estates = DB::table("allestates")->get()->map(function($estate) {
$estate->address = addslashes($estate->address);
return $estate;
});
return view("home", compact('estates'));
}
相关的联合声明将是:
var options = {
zoom:8,
center: new google.maps.LatLng({{$estates[0]->lat}}, {{$estates[0]->long}});
}
因为您有多个地址,这意味着您也将有多个标记。话虽如此,您的代码应该如下所示:
function initMap(){
var options = {
zoom:8,
center: new google.maps.LatLng({{$estates[0]->lat}}, {{$estates[0]->long}});
}
var map = new google.maps.Map(document.getElementById("map"), options);
var infoWindow = new google.maps.InfoWindow({
content:'content here'
});
var markers = [];
@foreach ($estates as $key => $estate)
markers[{{$key}}] = new google.maps.Marker({
position: new google.maps.LatLng({{$estate->lat}}, {{$estate->long}});
map: map
});
markers[{{$key}}].addListener('click', function () {
infoWindow.open(map, markers[{{$key}}]);
});
@endforeach
}
发布于 2018-12-04 00:44:45
您可以在laravel刀片文件中使用php变量作为
var options ={缩放:8,中间:{{$旅游地->地址}
https://stackoverflow.com/questions/53608684
复制相似问题