我正在另一个父指令中创建一个指令,然后将指令的编译元素附加到父指令的节点。 $ 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);
}
}
编译模板后如何调用链接函数?
答案 0 :(得分:4)
$compile(template)
实际上返回了链接功能。
所以productDirective(productScope)
实际上是对链接函数的调用。
来源:http://docs.angularjs.org/api/ng.$compile
返回 {function(scope [,cloneAttachFn])} - 一个链接函数,它是 用于将模板(DOM元素/树)绑定到范围