我的布局页:

<html>
 <body>
  <div id="container">
   <ul id="list"></ul>
  </div>
  <input id="update" value="update" />
 </body>
</html>

其中ul列表是部分列表,将在
整个页面被加载
当单击update按钮时,将发出ajax请求,容器层的innerhtml将使用响应ul列表进行更新。
我对yii很陌生,不知道如何在这两种情况下都重用ul部分,我在google上搜索了一下,widgets似乎是解决方案,不确定是什么。有什么想法吗?
谢谢。

最佳答案

如果我理解你的问题,你可以做一些事情…
(我假设您有一个部分视图文件,如views/model/\u list.php。)
您可以在初始页面加载上渲染部分('/Meal/OpList'),然后在Ajax操作中再次调用ReRelDePielt(‘/Meal/OpLIST’)。
或者,您可以只使用Ajax操作(包含ReReDebug部分('/Maule/OpList')),而不是用jQuery在页面加载上调用它,而不是在视图中调用它(只调用Yi::AppEnter)-> GeclicliScript()-> RealScript脚本,在您的视图中,您想加载它,并使用$.ajax(或)来进行调用)。
我做的第三件事是在控制器中创建一个函数(不是一个操作,只是一个普通的公共方法),它返回renderpartial的输出(我认为返回$this->renderpartial('/model/\u list',array(),true))。然后,考虑到初始加载,我会回显该函数,在ajax操作中,我会在调用yii::app()->end()之前回显它。
当您将在整个站点(甚至在来自不同控制器的页面上)呈现一些部分代码时,小部件非常有用。因此,如果这个列表在整个站点的侧边栏中,那么最好用它制作一个小部件,否则我将只使用您正在使用的模型的控制器。使用小部件所做的与使用常规视图所做的是一样的——要么在小部件中构建数据并呈现partialview,要么通过ajax调用它。对于ajax,您可能要做的是将数据发送给从中获取数据的控制器,因此您仍然需要ajax操作。这个小部件只会让你更容易把它放在网站的不同位置。
祝你好运!

09-26 19:10
查看更多