[英]Write a js expression inside laravel blade template
我正在使用tagsinput进行一些标记操作。 我想为从控制器发送的标记字段添加一些默认值。 但似乎我试图使用js表达式的方式不起作用。 谁能帮我。 这是代码。
<script>
var cities = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: members
});
cities.initialize();
var elt = $('#researcher');
elt.tagsinput({
itemValue: 'value',
itemText: 'text',
allowDuplicates: false,
typeaheadjs: {
name: 'cities',
displayKey: 'text',
source: cities.ttAdapter()
}
});
@foreach ($memberResearch->member as $member)
{!! $text = $member->firstName." ".$member->lastName !!}
{!! $id = $member->member_id !!}
@if($member->pivot->role == "Researcher")
elt.tagsinput('add' , {"value" : {{ $id }} , "text" :{{ $text }} });
@endif
@endforeach
</script>
PHP和Javascript是两个非常独立的实体。
对于这种东西,最好的方法是将laravel将内容(数据)转储到页面某处,然后前端(javascript)可以拾取。
例如:
// controller
$appConfig = [ 'foo' => 'bar' ];
// blade
<script>
var AppConfig = {!! ! empty($appConfig) ? json_encode($appConfig) : "{}" !!};
</script>
// js
var foo = JSON.parse(AppConfig).foo;
console.log(foo); // outputs bar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.