在yii中通过registerScript将id设置为脚本

时间:2014-09-10 12:16:38

标签: php yii

我发现有关此问题的更多帖子,但所有答案都无济于事。例如Forcing Script Order from registerScript Method in Yiiyii CClientScript docs。以上帖子已经写过

registerScript(string $id, string $script, integer $position=NULL, array $htmlOptions=array ( ))

获取上述脚本:

<script type="text/javascript" id="some_id">
    console.log("sasasasas");
    //js code
</script>

我有一段代码:

$cs = Yii::app()->getClientScript();
$cs->registerScript(__CLASS__ . '#' . $this->id . 'Ex', '
        console.log("sasasasas");'
        //js code
   , CClientScript::POS_READY,  array('id="some_id"' ) 
);

但我无法像我预期的那样得到剧本。我没有id="some_id"的脚本。有人可以帮我找到我错过的东西吗?

修改
两个版本都不起作用:

$cs = Yii::app()->getClientScript();
$cs->registerScript(__CLASS__ . '#' . $this->id . 'Ex', '
        console.log("sasasasas");'
        //js code
   , CClientScript::POS_READY,  array('id'=> 'some_id' ) 
);

$cs = Yii::app()->getClientScript();
$cs->registerScript('some_id', '
        console.log("sasasasas");'
        //js code
   , ) 
);

2 个答案:

答案 0 :(得分:2)

我猜你必须改变这条线

array('id="some_id"')

array('id' => 'some_id')

答案 1 :(得分:1)

可能会有人稍后遇到问题。我建议他们,一定不要犯错误。 @Chris answer是正确的,registerScript()在您使用render()呈现视图时设置了ID,但是当您使用renderPartial() registerScript()时,不会将脚本设置为id。您可以从the post

找到解决方案