和前几个例子对比,这个例子的JS和HTML代码都略有不同,JS代码里面多了一个transclude:true,HTML代码里面在<hello>内部出现了子标签。
指令的作用是把我们自定义的语义化标签替代成浏览器能够认识的HTML标签。但如果我们自定义的标签内部出现了子标签,应该如何去处理呢?很显然,transclude就是用来处理这种情况的。对于当前这个例子,transclude的作用可以简化理解成:把<hello>标签内部的内容保持不变。很显然,由于我们没有加replace:true选项,所以<hello>标签还在,没有被替换掉。同时,通过这个例子你还会发现一个暗藏的属性,那就是浏览器实际上非常智能,虽然它并不认识<hello>这个标签,但是页面没有出错,它只是默默地把这个标签忽略掉。
网友评论