题
我的布局页面:
<html>
<body>
<div id="container">
<ul id="list"></ul>
</div>
<input id="update" value="update" />
</body>
</html>
其中ul列表是部分,将在
- 整个页面已加载
- 单击“更新”按钮时,会发出AJAX reqeust,并且将使用响应UL列表更新容器层的InnerHTML
我是YII的新手,不确定如何在两种情况下都重复使用UL部分,我搜索了一些谷歌,而小部件似乎是解决方案,不确定。有任何想法吗?
谢谢。
解决方案
如果我理解您的问题,您可以做一些事情...
(我假设您有一个部分视图文件,例如views/model/_list.php。)
您可以在初始页面加载上进行renderpartial('/model/_list'),然后在Ajax Action中再次调用RenderPartial('/Model/_list')。
或者,您可以只使用Ajax操作(包含renderpartial('/model/_list')),然后使用jQuery在页面加载上调用它,而不是在视图中呈现(只需调用yii :: app() - > getClientscript() - > getClientscript() - >在您要加载的位置的视图中,请登记字样,并使用$ .AJAX()或拨打电话)。
我完成的第三件事是在控制器中发挥作用(不是 行动, ,只是一种常规的公共方法),它返回renderpartial的输出(返回$ this-> renderpartial('/mody/_list',array(),true)。然后,在调用yii :: app() - > end();的初始负载i呼应该功能的初始负载i呼应该功能中,然后在Ajax操作中呼应它。
当您将在网站上呈现一些部分代码,即使在不同控制器的页面上,小部件也很有用。因此,如果该列表在整个站点的侧边栏中,则最好将小部件从中拿出来,否则我只会使用您正在使用的模型的控制器。您将使用窗口小部件与常规视图相同 - 要么在小部件中构建数据并渲染partialview,要么通过Ajax调用它。您可能会为Ajax做的事情是帖子到您从中获取数据的控制器,因此您仍然需要Ajax操作。小部件只会使其更容易在网站周围放置不同的位置。
祝你好运!