Javascript 通过typeahead.js中的innerHTML执行Angular指令

Javascript 通过typeahead.js中的innerHTML执行Angular指令,javascript,angularjs,typeahead.js,Javascript,Angularjs,Typeahead.js,我试图通过向templates选项传递一个angular指令来使用带有typeahead.js的自定义模板 $('.typeahead#players').typeahead({ hint: true, highlight: true, minLength: 0 }, { source: substringMatcher(typeaheadPlayers, 'player'), templates: { sugg

我试图通过向templates选项传递一个angular指令来使用带有typeahead.js的自定义模板

$('.typeahead#players').typeahead({
      hint: true,
      highlight: true,
      minLength: 0
    }, {
      source: substringMatcher(typeaheadPlayers, 'player'),
      templates: {
        suggestion: function(data){
          return ['<div><avatar user-id="' + data.user_id + '" user-full-name="' + data.long_display_name + '" changed-src=' + true + '></avatar>',
                  '<p>' + data.long_display_name + '</p>',
                  '</div>'].join('\n');
        },
        empty: '<div><p>No users were found by that name.</p></div>'
      }
    });
$('.typeahead#players')。typeahead({
提示:没错,
推荐理由:没错,
最小长度:0
}, {
来源:substringMatcher(typeaheadPlayers,'player'),
模板:{
建议:功能(数据){
返回[“”,
“”+data.long\u display\u name+”

, '')。加入('\n'); }, 空:“未找到该名称的用户。

” } });
HTML被正确地注入,而
long\u display\u name
显示得很好。我定义的名为
avatar
的指令根本没有启动。我尝试了
$compile
并尝试了传入
ng transclude
,但我的指令仍然无法启动


如何将角度指令传入此模板并触发它?

您确定要批准对您的帖子的编辑吗?它使阅读变得更加困难。正是
$compile
起了作用(他们不会无缘无故地这样称呼它)。您正在尝试做的工作示例不会有什么坏处。@estus我认为您是正确的,
$compile
是我需要的。那到底去了哪里?我重新分解,试图将
$compile(html)
传入
返回的位置,但得到了一个
未捕获的hierarchyrequesterror
。大多数
$compile
示例显示它被放在实际指令中,这不是我在本例中所需要的。如果不查看所发布代码的上下文,就不可能给出合理的答案。但是$compile的正确用法是
$compile(html)(scope)
,其中'scope'是实际的$scope或
{}
-如果您不需要数据绑定的话。好的,谢谢,我已经更新了,包括了使用它的整个块。这使用的是typeahead.js库,此回调中的
templates
对象允许您传入一个html块,作为返回建议的自定义模板返回。我想我基本上想编译这个返回的块。但它不允许我将其包装在
$compile
中。所以我不确定它是如何工作的。你确定你想批准你文章中的编辑吗?它使阅读变得更加困难。正是
$compile
起了作用(他们不会无缘无故地这样称呼它)。您正在尝试做的工作示例不会有什么坏处。@estus我认为您是正确的,
$compile
是我需要的。那到底去了哪里?我重新分解,试图将
$compile(html)
传入
返回的位置,但得到了一个
未捕获的hierarchyrequesterror
。大多数
$compile
示例显示它被放在实际指令中,这不是我在本例中所需要的。如果不查看所发布代码的上下文,就不可能给出合理的答案。但是$compile的正确用法是
$compile(html)(scope)
,其中'scope'是实际的$scope或
{}
-如果您不需要数据绑定的话。好的,谢谢,我已经更新了,包括了使用它的整个块。这使用的是typeahead.js库,此回调中的
templates
对象允许您传入一个html块,作为返回建议的自定义模板返回。我想我基本上想编译这个返回的块。但它不允许我将其包装在
$compile
中。所以我不确定它是如何工作的。你确定你想批准你文章中的编辑吗?它使阅读变得更加困难。正是
$compile
起了作用(他们不会无缘无故地这样称呼它)。您正在尝试做的工作示例不会有什么坏处。@estus我认为您是正确的,
$compile
是我需要的。那到底去了哪里?我重新分解,试图将
$compile(html)
传入
返回的位置,但得到了一个
未捕获的hierarchyrequesterror
。大多数
$compile
示例显示它被放在实际指令中,这不是我在本例中所需要的。如果不查看所发布代码的上下文,就不可能给出合理的答案。但是$compile的正确用法是
$compile(html)(scope)
,其中'scope'是实际的$scope或
{}
-如果您不需要数据绑定的话。好的,谢谢,我已经更新了,包括了使用它的整个块。这使用的是typeahead.js库,此回调中的
templates
对象允许您传入一个html块,作为返回建议的自定义模板返回。我想我基本上想编译这个返回的块。但它不允许我将其包装在
$compile
中。所以我不确定它是如何工作的。