我在另一个父指令中创建一个指令,然后将该指令的编译元素附加到父指令的节点。$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元素/树)绑定到作用域