当使用$compile以编程方式创建指令时,如何调用link函数?



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

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);
      }
}

如何在编译模板后调用link函数?

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

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

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

返回 {function(scope[, cloneAttachFn])} -一个链接函数用于将模板(DOM元素/树)绑定到作用域

最新更新