Aem 我们可以使用javascript包含cq组件(带有对话框)吗?

Aem 我们可以使用javascript包含cq组件(带有对话框)吗?,aem,Aem,我们可以通过添加 <cq:include path="" resourceType="" /> 是否可以使用javascript实现同样的功能 像 var temp=“” 如果(某些条件){ $(“#somediv”)。附加(临时); } 我假设您指的是客户端JavaScript。如果这是服务器端JavaScript,那么您可以通过Sightly和JavaScript使用对象的组合来实现 在创作环境中这样做通常是不切实际的,因为它涉及到对可编辑内容的处理,并且通常会使

我们可以通过添加

    <cq:include path="" resourceType="" />

是否可以使用javascript实现同样的功能

var temp=“”
如果(某些条件){
$(“#somediv”)。附加(临时);
}
我假设您指的是客户端JavaScript。如果这是服务器端JavaScript,那么您可以通过Sightly和JavaScript使用对象的组合来实现

在创作环境中这样做通常是不切实际的,因为它涉及到对可编辑内容的处理,并且通常会使创作体验更加复杂。在发布环境中这样做当然是可能的(而且非常简单)

在publish中,您可以执行以下操作(使用jQuery):


这将对/content/path/to/page/_jcr_content/sometext.html发出AJAX请求,并使用该内容将div替换为提供的ID。

不知道动态显示它的简单方法。可能包含组件会更容易,但在某些情况下会隐藏它吗

下一种方法有几个缺点(比如没有下载ClientLib,所以您不应该将它们包含在组件中,而应该包含在包含此组件的页面中)

  • 如果需要,创建组件
  • CQ.HTTP.post(路径应为+“/nodeName”,null{
    “jcr:primaryType”:“nt:非结构化”,
    “sling:resourceType”:“部分/类型”
    
    });谢谢你的回复,贾斯汀。但我需要添加一个组件,该组件对于作者来说也是可编辑的。有没有一种方法可以通过sling servlet实现它?我的意思是,我们可以从一个sling servlet中创建一个应用程序吗?抱歉,如果我不清楚的话-我建议总是在作者模式中包含这个组件,并且只在发布时应用有条件的AJAX逻辑。实际上,我已经在处理AJAX响应(JSON数组)并从中构建HTML。当我构建一个HTML时,我需要包含一个组件。你使用的是哪个CQ版本?我正在博客上工作。将AEM 5.6.1与已安装的社交社区功能包1.4一起使用非常感谢您的回答。我其实不知道这样的技术
    if (some condition){
        $("#somediv").load("<%= resourceResolver.map(request, currentResource.getPath() + "/sometext.html")) %>);
    }
    
    if (some condition){
        $("#somediv").load("/content/path/to/page/_jcr_content/sometext.html")) %>);
    }