您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
-->
当前位置:首页 >> 编程问答 >> Web开发 >> (JavaScript)angularjs使用$compile编译模板后如何获取编译后的模板内容并将其转成字符串。

(JavaScript)angularjs使用$compile编译模板后如何获取编译后的模板内容并将其转成字符串。

来源:网络整理     时间:2016/5/10 15:32:43     关键词:angularjs

关于网友提出的“(JavaScript)angularjs使用$compile编译模板后如何获取编译后的模板内容并将其转成字符串。”问题疑问,本网通过在网上对“(JavaScript)angularjs使用$compile编译模板后如何获取编译后的模板内容并将其转成字符串。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:(JavaScript)angularjs使用$compile编译模板后如何获取编译后的模板内容并将其转成字符串。
描述:

angularjsdom

代码:
var template = '<div><div>{{testValue}}</div></div>'
$scope.testValue = 'test';
var result = $compile(template)($scope);
console.log(result);
console.log(result[0]);
console.log(result[0].innerHTML);

结果:
result 和 result[0] 都是绑定后的结果,但是innerHTML取出来是未绑定的结果。
对原理不是很清楚,为什么innerHTML取不到绑定后的结果呢?
目的是想要取到绑定后的内容(字符串)。


解决方案1:

$scope永远是依赖于controller,也就是说真正把插值变成对应变量的值的时候是controller被编译的时候或者检测到变量更新的时候,而不是模板被编译的时候。
在你的代码中,compile执行完成后,整个controller并没有编译完成,这个时候的result里的innerHTML还没有被替换成变量的值。
而你在控制台里看到打印出来的result的时候,整个controller已经编译完成了,所以看到的值是正确的。

setTimeout(function(){
    console.log(result[0].innerHTML);
},2000)


以上介绍了“(JavaScript)angularjs使用$compile编译模板后如何获取编译后的模板内容并将其转成字符串。”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1010009.html

相关图片

相关文章