【问题标题】:When creating a directive programmatically with $compile, how do you call the link function?使用 $compile 以编程方式创建指令时,如何调用链接函数?
【发布时间】:2013-05-30 06:23:14
【问题描述】:

我正在另一个父指令中创建一个指令,然后将指令的编译元素附加到父指令的节点。 $compile(template)(scope) 正确创建了指令,但链接函数没有被调用。

var addProductsToPage = function(template, products) {

      for (var i = 0 ; i < products.length ; i++) {

        var product = products[i];

        var productScope = $scope.$new(true);

        productScope.product = product

        var productDirective = $compile(template);

        var productElement = productDirective(productScope);

        element.append(productElement);

      }

}

模板编译后如何调用链接函数?

【问题讨论】:

    标签: javascript web-applications angularjs angularjs-directive frontend


    【解决方案1】:

    $compile(template) 实际上返回链接函数。

    所以productDirective(productScope)实际上是对链接函数的调用。

    来源:http://docs.angularjs.org/api/ng.$compile

    返回 {function(scope[, cloneAttachFn])} – 一个链接函数,它是 用于将模板(DOM 元素/树)绑定到范围

    【讨论】:

    • 是的,如果你看一下我正在调用链接函数。它正确地应用了范围,但实际上并没有触发我的链接功能。
    • @JesseEarle 你是如何解决这个问题的?答案被标记为正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 2018-06-14
    • 1970-01-01
    • 2012-10-10
    • 2013-07-15
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多