我目前正在编写自己的模块,需要在所有页面上加载一些脚本,包括前端和仪表板,用户有权编辑内容。我编写了一个IResultFilter实现,它为网站主题中的“尾部”区域添加了一个形状。
正确地将形状添加到页面中,除了一件事以外,一切都正常。在相同的形状我也试图调用Script.Require我添加到ResourceManifest的几个脚本,但它们没有被加载到页面。
@{
Script.Require("OrchardTinyMce");
Script.Require("jQueryColorBox");
}
如果我将相同的代码放在未使用我的IResultsFilter实现呈现的视图中,则将它们添加到页面中。我宁愿在它的当前视图中保留这些代码,尽管有两个替代方案需要相同的脚本,而且我真的不想复制它。
有没有人有任何想法如何让脚本注册?在此先感谢您的帮助。
答案 0 :(得分:2)
我已经研究过如何做到这一点。我刚刚将IResourceManager注入到我的HtmlFilter中,然后按如下方式添加脚本:
_resourceManager.Require("OrchardTinyMce");
_resourceManager.Require("jQueryColorBox");
答案 1 :(得分:2)
我不确定为什么它不适用于您的视图,但您可以使用资源管理器从您的过滤器中添加这些脚本:
_resourceManager.Require("script", "OrchardTinyMce").AtFoot();
按照惯例注入资源管理器:
private readonly IResourceManager _resourceManager;
public MyFilter(IResourceManager resourceManager) {
_resourceManager = resourceManager;
}
答案 2 :(得分:0)
如果您想要其他用户,或者您可以简单地覆盖此脚本(使用lightBox insted colorBox)。您可以将形状添加到内容区域(但此形状不应具有输出html)。
Services.WorkContext.Layout.Content.Add(YourShape, ":after");
它适用于IResultsFilter