Silverstripe - 通过包含CSS / JS的ajax加载页面

时间:2012-09-04 15:59:18

标签: ajax content-management-system silverstripe

在silverstripe项目中我通过ajax加载整个页面。因此我添加了Page-Contoller跟随功能:

public function ajax(){
    return $this->renderWith('MyTemplate');
}

到目前为止,此工作正常,我在浏览mysite.com/mypage/ajax时可以按需要呈现页面。唯一的问题是模板“MyTemplate”中包含的JS / CSS文件:

<% require javascript(my.js) %>
<% require css(my.css) %>

css / js没有显示在源代码中 - 不知何故它没有包含在内,尽管它是模板“MyTemplate”的一部分。

那么有没有办法用silverstripe方法以很酷的方式添加css / js?

我试过了:

public function ajax(){
    Requirements::css("my.js");
    return $this->renderWith('ProjectPage');
}
到目前为止没有成功。 非常感谢, 弗洛里安

1 个答案:

答案 0 :(得分:1)

您需要将以下javascript文件加载到您的网站中,具体取决于silverstripe版本:

SS3 - /framework/javascript/jquery-ondemand/jquery.ondemand.js

OR

SS2.4 - / sapphire / javascript / core / jquery.ondemand.js

据我了解;当您发出ajax请求时,任何新的css或javascript要求都会添加到请求标头中。然后,当请求成功时,ondemand.js会将这些脚本拉到文档中,如果它们不在那里。