前面几篇讲解了YII框架下Ueditor的配置使用,文章链接:http://blog.csdn.net/u012063507/article/details/56840072
今天在别的视图中再次采用同样的方法调用ueditor时却发现,却加载失败。
找了半天原因,终于发现了问题所在,也就是Ueditor在YII中使用的注意事项,即:
在Controller中渲染含有Ueditor的视图时,应当使用render()渲染,使用renderPartial()将无法正常渲染出Ueditor。
至于其中原因,猜测可能跟调用Ueditor的代码有关,也与render()与renderPartial()的区别有关。
下面代码是调用ueditor的语句:
<?php
$this->widget('ext.ueditor.Ueditor',
array(
'getId'=>'RecordSelftestWebScan_answer',
'model'=>$recordModel,
'attribute'=>'answer',
'UEDITOR_HOME_URL'=>Yii::app()->baseUrl.'/ueditor/',
'options'=>'toolbars:[["fontfamily","fontsize","forecolor","bold","italic","strikethrough","|",
"insertunorderedlist","insertorderedlist","blockquote","|",
"link","unlink","highlightcode","insertimage","attachment","|","undo","redo","source"]],
wordCount:true,
elementPathEnabled:false,
',
));
?>
render()与renderPartial()的区别:
1.render 输出父模板的内容,将渲染的内容,嵌入父模板。|
2.renderPartial 则不输出父模板的内容。只对本次渲染的局部内容,进行输出。
同时还有个重要的区别:
render 函数内部默认执行processOutput($output)函数, 会将把组件 里面的 需要的脚本进行渲染输出。不是特别理解,猜测上段代码需要加载组件里的脚本进行渲染输出,所以renderPartial 失败。