【问题标题】:How do I include other directives in the template of my customer directive in Angular?如何在 Angular 中的客户指令模板中包含其他指令?
【发布时间】:2013-09-25 08:50:00
【问题描述】:

我写了一个简单的自定义指令。该指令中的 template 包括其他指令(例如 ui-sortable)。因为它不总是使用 ui-sortable,所以我在链接阶段添加它。然而它似乎并不适用:

        link: function ($scope,$element,attrs) {
attrs.$observe('admin', function(value) {
  if ($scope.admin) {
        $element.find("span").html("true");
      $element.find("ul").attr("ui:sortable","sortableOptions");
  }
});
    }

完整的小提琴示例在这里:http://jsfiddle.net/VjfEf/4/

有两个列表。第一个直接使用ui-sortable 并且拖放/排序有效,第二个使用我的自定义members 指令。该指令确实有效,它会呈现,但是以与第一个完全相同的方式添加 ui-sortable 没有影响,而拖放/排序则没有。

我假设我不了解自定义指令的处理阶段,或者需要向我的自定义指令添加一些内容?

【问题讨论】:

    标签: angularjs angularjs-directive


    【解决方案1】:

    你需要编译新添加的HTML。

    $compile($element.contents())($scope);
    

    Fiddle

    【讨论】:

    • 你能详细说明一下吗?我在哪里/何时编译它?随意修改小提琴和更新。
    • Brilliant @CodeHater,效果很好。我是在倒退吗,有没有更好的方法来做到这一点?我的理解是,由于我正在操作模板的 DOM,并且每个实例都会有所不同,所以这必须在链接阶段发生?
    • 跨列表 DnD 仍然存在一些问题。我将更新小提琴并在此处发布...
    • @deitch 或者你可以发布一个不同的问题。
    • K,我会这样做的。参考这个。
    猜你喜欢
    • 2015-09-13
    • 1970-01-01
    • 2015-06-08
    • 2015-09-05
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    相关资源
    最近更新 更多