4

考虑这样的 URL:

http://site.com/upload/qeSJGs,ZWURb4,qdMMTZ,yM62UX,RlwwWT,ecw7s1

我需要将所有 6 个字符串分隔,为 Javascript 数组并插入到我的页面中。这是我的控制器操作:

public function upload($imageHashes) {
    $this->set('title_for_layout', 'Uploads successful');
    $this->set('imageHashes', explode(',', $imageHashes);
    $this->layout = 'complex';
}

在我的视图文件中,我有这个:

<?php echo $this->Html->scriptBlock('', array('inline' => false)); ?>

现在,在方法中编写所有 Javascript 会非常麻烦scriptBlock,但我不能包含外部 Javascript 文件,因为内容会根据 URL 发生变化。有没有我不知道的更简单的方法来做到这一点?

4

2 回答 2

4

获取您的 imageHashes 数组并对其进行 json_encode。然后对于您的脚本块,您可以执行类似的操作

echo $this->Html->scriptBlock('var jsArray = ' . $json_encoded_array . ';', array('inline' => false)); 
于 2012-07-18T21:29:30.993 回答
3

对于 Cakephp 2.x 和 Cakephp 3.x 你可以使用:

在视图或模板文件中:

<?php $this->Html->scriptStart(array('block' => 'scriptBottom', 'inline' => false)); ?>

$(document).ready(function(){
  console.log('OK');
});

<?php $this->Html->scriptEnd(); ?>

在布局文件中:

<?= $this->fetch('scriptBottom'); ?>
于 2016-06-20T17:01:01.200 回答