ZF2 - 使用ajax / setTerminal加载视图时包含头文件(true)

时间:2016-09-09 09:32:04

标签: jquery ajax zend-framework2 zend-view

我目前正在使用ajax(在ZF2应用程序中使用jquery 1.x)加载我网站的部分内容,这很好用,直到我加载一个视图,该视图在该视图的头部声明了依赖的javascript / css文件。在ViewModel上声明setTerminal(true)仅返回视图的内容部分,因此不包含任何$this->headScript()->appendFile()$this->inlineScript()->appendFile()$this->headLink()->appendStylesheet()文件。

这意味着虽然通过ajax正确加载了内容,但如果在该视图中需要使用其他脚本,则该内容无法正常运行。

是否存在以某种方式包含这些文件的方法,以便ajax请求的内容有效?

举个例子: 假设我正在开发一个仪表板,它使用ajax从几个不同的控制器中提取数据,例如用户信息,订阅信息等。在仪表板中,我可以包含在用户和订阅视图中定义的所有javascript / css文件,但肯定只是用大量的js / css文件来污染Dashboard视图?必须有更好的方法。

1 个答案:

答案 0 :(得分:0)

如果您通过ajax加载页面的一部分,即直接html部分,则部分模板不应该有<head>部分。即使它有一个(不确定),因为您的主页已经管理了<head>,部分内容将不起作用。

所以不要使用$this->headScript()$this->headLink()助手。即使您包含脚本beetwen <script>标记,您的代码也会插入到DOM中,但不会被解释。为此,请阅读此other question