在指令定义中使用$compile的意义是什么?
What is the significance of using $compile in directive definition?
下面的代码与egghead提供的代码类似。他正在构建一个调试指令。
app.directive('debug',function($compile){// injecting compiler
return{ // DDO
terminal:true,
priority:1000,
link:function($scope,$element){
var clone = $element.clone();
clone.removeAttr("debug");
$element.addClass('highlight');
var clonedElement = $compile(clone)($scope);
$element.after(clonedElement);
}
};
});
我的问题是,从$compile
到compile
,再到clone
,再到DOM中添加clonedElement
,这有什么意义?我试图添加(下面给出的代码)clone
而不是clonedElement
,它显然做同样的事情。
app.directive('debug',function($compile){// injecting compiler
return{ // DDO
terminal:true,
priority:1000,
link:function($scope,$element){
var clone = $element.clone();
clone.removeAttr("debug");
$element.addClass('highlight');
//var clonedElement = $compile(clone)($scope);
$element.after(clone);
}
};
});
在这个有限的例子中,这可能无关紧要,但不同之处在于Angular没有考虑那个DOM元素。如果DOM元素有指令或绑定,它们将无法工作,因为Angular还没有意识到该元素。$compile
是将一个新的DOM元素与Angular关联起来的。
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- 在ng重复循环中显示条件内容的最佳方式是什么
- 我的客户端选项是什么
- 这是什么“;要求“;事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- @@(“at at”)在ES6 JavaScript中是什么意思
- knex:根据结果创建数组的合适方法是什么
- 在指令定义中使用$compile的意义是什么?
- 这个错误是什么"[$compile:nonassign]"在angularjs指令中