Twitter typeahead 模板值被误解为 Laravel Blade 占位符——“使用未定义的常量名称 - 假定‘名称’”

问题描述 投票:0回答:1

我正在使用旧的 typeahead 0.9.3 并从文本输入(id:search_accused)调用 typeahead jquery 函数,如下所示

$('#search_accused').typeahead([
        {
            name: 'search_accused',
            valuekey: 'name',
            header: 'NAME',
            limit: 5,
            remote: 'suggestaccused.php?query=%QUERY',
            template: '{{name}}',
            engine: Hogan
        }
    ]).on('typeahead:selected',function(event,datum){
        alert(datum.name);
    }); 

suggestaccused.php代码是

while ($row = mysqli_fetch_assoc($result)) {
    $array['name'] = $row['name'];
    $array['photo'] = $row['photo'];
    array_push($accused, $array);
}   
echo json_encode ($accused); 

我收到以下错误:

使用未定义的常量名称 - 假定为“名称”

我认为这是因为使用了 {{}},因为当我使用 template: '{name}' 或任何其他 template: 值时,alert() 会在从下拉列表中选择时打印所需的名称,但不会给出错误但也没有输出正确的值。

php jquery laravel-5 laravel-blade twitter-typeahead
1个回答
0
投票

我正确地假设是 {{}} 给出了错误。这是因为 Laravel 的 Blade 认为它是一个 php 表达式。在 {{}} 之前添加 @ 告诉 Blade 它是 Javascript。所以我改变了

template: '{{name}}',

template: '@{{name}}',

而且效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.