angular中,$interpolate和$compile


$interpolate
在官方文档中描述的是
编译一段带有插入标记({{}}这个东西,当然也可以是标签内的属性表达式)的语句,然后返回一个interpolation(插值)函数
插值函数的参数一context,也就是提供插值标记里面变量内容的对象。
例如
var html = '<div>{{name}}</div>';
$scope.interpolate = $interpolate(html)({name:'test'});

会将一段html,或者准确的说是就是字符串,不仅限于html,进行编译,将我们需要的值查进去,返回编译完的字符串。



再说$compile
我们在编写指令的时候,可能会用到$compile这个函数方法,而我们的指令也是通过上面的$interpolate进行实现的。
只不过$compile从字面意思来看,就是编译。
我们通常是在写指令的compile部分使用它,场景其实就是在写指令的时候,我们提供的仅仅是一个工厂,而在我们需要的地方才会进行编译执行,而$compile则会返回一个已经封装好的DOM对象。

猜你喜欢

转载自liyunpeng.iteye.com/blog/2290176