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

时间:2013-06-04 00:24:28

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

我正在另一个父指令中创建一个指令,然后将指令的编译元素附加到父指令的节点。 $ 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);

      }

}

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

1 个答案:

答案 0 :(得分:4)

$compile(template)实际上返回了链接功能。

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

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

  

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