我发现有关此问题的更多帖子,但所有答案都无济于事。例如Forcing Script Order from registerScript Method in Yii和yii 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
, )
);
答案 0 :(得分:2)
我猜你必须改变这条线
array('id="some_id"')
到
array('id' => 'some_id')
答案 1 :(得分:1)
可能会有人稍后遇到问题。我建议他们,一定不要犯错误。 @Chris answer是正确的,registerScript()
在您使用render()
呈现视图时设置了ID,但是当您使用renderPartial()
registerScript()
时,不会将脚本设置为id。您可以从the post