没有把手的预输入自定义模板

Posted

技术标签:

【中文标题】没有把手的预输入自定义模板【英文标题】:Typeahead custom template Without Handlebars 【发布时间】:2015-05-27 05:25:39 【问题描述】:

我正在尝试实现 Typeahead.JS "Custom Template" example。

$('#custom-templates .typeahead').typeahead(null, 
  name: 'best-pictures',
  displayKey: 'value',
  source: bestPictures.ttAdapter(),
  templates: 
    empty: [
      '<div class="empty-message">',
      'unable to find any Best Picture winners that match the current query',
      '</div>'
    ].join('\n'),
    suggestion: Handlebars.compile('<p><strong>value</strong> – year</p>')
  
);

特别是这一行:

suggestion: Handlebars.compile('<p><strong>value</strong> – year</p>')

最初我没有意识到您需要明确要求 Handlebars 作为依赖项:

Uncaught ReferenceError: Handlebars is not defined

当我移除 Handlebars 时...

suggestion: '<p><strong>' + value + '</strong> – ' + year + '</p>'

它给出了另一个 JS 错误:

Uncaught ReferenceError: value is not defined

是否可以在不使用 Handlebars 引擎的情况下使用自定义视图模板?

【问题讨论】:

【参考方案1】:

使用这种格式:

suggestion: function(data) 
    return '<p><strong>' + data.value + '</strong> – ' + data.year + '</p>';

取自this thread。

【讨论】:

【参考方案2】:

这可能会有所帮助 - 我已将其与 Bootstrap 集成:

<div class="col-lg-3" id="the-basics">
<input type="text" class="typeahead form-control" placeholder="my placeholder" aria-describedby="basic-addon1">
</div>

$('#the-basics .typeahead').typeahead(null, 
  name: 'best-pictures',
  display: 'imageUrl',
  source: function show(q, cb, cba) 
    console.log(q);
    var url = '/yoururl/'+q;
    $.ajax( url: url )
    .done(function(res) 
      cba(res.list);;
    )
    .fail(function(err) 
      alert(err);
    );
  ,
    limit:10,
  templates: 
    empty: [
      '<div class="empty-message">',
        'No data',
      '</div>'
    ].join('\n'),
    suggestion: function(data) 
      return '<p><strong>' + data.itemName + '</strong> - <img height:"50px" width:"50px" src='+data.imageUrl+'></p>';
    
  
);

【讨论】:

以上是关于没有把手的预输入自定义模板的主要内容,如果未能解决你的问题,请参考以下文章

手把手一起学习 Altium Designer 20修改和自定义原理图标题栏

模板和隐藏输入中的自定义 Django 表单

如果自定义模板验证器有同名的输入属性时,各验证器的行为是什么

Jinja - 加载自定义模板标签集

Visual Composer 自定义简码模板 - custom_markup 显示用户输入

Django Allauth 自定义登录不显示错误