2014-08-29 67 views
0

我有一个指令将li项添加到列表中。每个li都有一个div,包括模板。我追加HTML后编译它,但ngInclude不起作用。它不包含指定的模板。用ngInclude附加html后编译指令

scope.attrs.itemTpl = 'dimension-item-tpl.html'; 

elemnt.find('ul').append(generatedList); 
$compile(generatedList)(scope); 

试过两个例子,HTML追加后:

<li class="col-xlg-2 col-lg-3 col-md-4 col-sm-6" data-item="creative_filename"> 
    <div ng-include="dimension-item-tpl.html"></div> 
</li> 
<li class="col-xlg-2 col-lg-3 col-md-4 col-sm-6" data-item="size"> 
    <div ng-include="dimension-item-tpl.html"></div> 
</li> 

与第二:

<li class="col-xlg-2 col-lg-3 col-md-4 col-sm-6" data-item="creative_filename"> 
    <div ng-include="attrs.itemTpl"></div> 
</li> 
<li class="col-xlg-2 col-lg-3 col-md-4 col-sm-6" data-item="size"> 
    <div ng-include="attrs.itemTpl"></div> 
</li> 

我在做什么错?

例子: http://jsfiddle.net/mato75/4zhLtjbw/

+0

你能告诉你的完整指令定义是什么? – 2014-08-29 11:47:39

回答

0

在第一个例子

你缺少单引号。

ngInclude =评估为URL的角度表达式。如果源为 字符串常量,请确保将其用单引号括起来。 src =“'myPartialTemplate.html'”。

试试这个。

<li class="col-xlg-2 col-lg-3 col-md-4 col-sm-6" data-item="creative_filename"> 
    <div ng-include="'dimension-item-tpl.html'"></div> 
</li> 
<li class="col-xlg-2 col-lg-3 col-md-4 col-sm-6" data-item="size"> 
    <div ng-include="'dimension-item-tpl.html'"></div> 
</li> 

请注意单引号。

参考:https://docs.angularjs.org/api/ng/directive/ngInclude

+0

不,它不起作用 – puppeteer701 2014-08-29 11:45:08

+0

我想创建一个指令,它不需要ngRepeat,因为指令上有一些额外的功能,这对ngRrepeat来说并不合适。 – puppeteer701 2014-08-29 11:56:20

+0

编辑您的文章并显示您的指令定义的简化版本 – 2014-08-29 11:58:24