0

我尝试使用 jquery 从另一个视图调用一个视图,但我有一个未定义的变量和许多其他错误。

让我解释

在我的AppController中,我添加了使用 jquery 的 Js

class AppController extends Controller {
    var $helpers = array('Html','Form','Js');  }

在我的布局中,default.ctp 文件中,我添加了 2 行

echo $this->Html->script('jquery');

echo $this->Js->writeBuffer(array('cache'=>TRUE)); 作为头块的最后一行

我的 PostsController 文件的添加操作,我添加了组件

public $components = array('RequestHandler');

在我的添加操作中,我使用,

$this->render('index','ajax'); 如果调用是ajax 调用。

如果渲染命令引用了一个 div 部分,它就可以工作。

但是当我想渲染一个现有视图时,在本例中是 index ,这是 PostController 的另一个指向 view.ctp 的操作,我得到了错误 undefined variable posts 和其他错误。

你能告诉我缺少什么吗?

4

1 回答 1

0

首先,如果您不打算使用 JsHelper,则不应包含它。您不需要明确地JsHelper使用 jQuery 来使用。很明显,你不知道所有这些东西是如何结合在一起并相互联系的。

您收到“帖子未定义错误”,因为(我猜)当您尝试渲染index视图时,您没有设置posts变量。我相当确定没有类似的东西:$this->set('posts', $someVariable);. 显示此错误是因为您index.ctp希望收到一个$posts包含所有帖子的变量。我怀疑这个视图也是通过生成的cake bake,对吧?如果你想渲染它,你需要获取帖子并设置变量posts

于 2013-06-28T07:12:14.157 回答