【问题标题】:Compiling directive after appending html with ngInclude使用 ngInclude 附加 html 后编译指令
【发布时间】:2014-08-29 11:02:19
【问题描述】:

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

 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/

【问题讨论】:

  • 你能展示你完整的指令定义吗?

标签: angularjs angularjs-directive


【解决方案1】:

在第一个例子中

您缺少单引号。

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

【讨论】:

  • 我想创建一个不需要 ngRepeat 的指令,因为该指令有一些附加功能,不能与 ngRrepeat 配合使用。
  • 编辑您的帖子并显示您的指令定义的简化版本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 2019-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多