使用 aem-sightly 获取当前时间

fetch current time by using aem-sightly

我是 aem 新手。我正在尝试通过使用 sightly 在 aem 中实现以下示例。目前我正在研究 aem 6.1。

你能指导我如何快速访问当前时间吗? 我正在使用对话框根据当前时间显示问候消息。

<div data-sly-use.clientlibInclude="${'/libs/granite/sightly/templates/clientlib.html'}"></div>
<output data-sly-call="${clientlibInclude.css @ categories='angular-global-category'}" data-sly-unwrap />
<html> `enter code here`
<head>
    <title>Greeting Message using JavaScript</title> 
</head>

<body>  
<section class="intro">
 <h1> <label id="lblGreetings"></label></h1></section>
</body>
<script>

    var myDate = new Date();
    var hrs = myDate.getHours();

    var greet;

    if (hrs < 12)
        greet = 'Good Morning';
    else if (hrs >= 12 && hrs <= 17)
        greet = 'Good Afternoon';
    else if (hrs >= 17 && hrs <= 24)
        greet = 'Good Evening';


    document.getElementById('lblGreetings').innerHTML =
        '' + greet + ' Julio';

</script> 
</html>

目前没有包含服务器日期信息的本机对象。要用 sightly 打印日期,您需要有一个与之相关的模型并在 sightly 中使用它。您可以拥有 java 脚本模型或 java 模型。 在网上找到的快速 js 指南:http://blogs.adobe.com/experiencedelivers/experience-management/htl-javascript-use-api/

如果您想使用 Java,我建议您使用 SlingModels 或 Slice 进行建模。

在我看来你并没有读太多有关 sightlty 的书。请先阅读文档。

实际上你可以创建一个java.util.Date作为模型:

<sly data-sly-use.time="java.util.Date">${time.hours}</sly>

但这只是为了好玩或调试,而不是好的风格 - 我认为将这样的逻辑移动到模型中要好得多,Java 或其他方式。 (这只是使用默认时区...)