登录后,如何检测preview/draft/live?
While logged in, how to detect preview/draft/live?
在使用 Apostrophe Workflow 时,我不知道如何在 CSS and/or JavaScript 中检测用户正在查看页面的模式。
.apos-workflow-draft-page
CSS class 似乎在草稿和预览模式中都存在,这可能会导致问题。我们改进了某些元素的可见性和布局,因此它们在草稿中被理解为可编辑,但在预览中,我们不希望显示所有这些提示。
ApostropheCMS 正确检测这些状态的方法是什么?
您可以检查 apos.modules['apostrophe-workflow'].locale
,如果处于草稿模式,它将以 -draft
结尾:
if (apos.modules['apostrophe-workflow'].locale.match(/-draft$/)) {
// draft mode
} else {
// live mode
}
检测预览模式也很简单。首先检查草稿模式,然后检查模板中的任何位置 data.workflowPreview
:
data.workflowPreview
这不会被推送到前端 javascript 变量中,但您可以自己做:
<script>
window.workflowPreview = {{ data.workflowPreview | json }};
</script>
在使用 Apostrophe Workflow 时,我不知道如何在 CSS and/or JavaScript 中检测用户正在查看页面的模式。
.apos-workflow-draft-page
CSS class 似乎在草稿和预览模式中都存在,这可能会导致问题。我们改进了某些元素的可见性和布局,因此它们在草稿中被理解为可编辑,但在预览中,我们不希望显示所有这些提示。
ApostropheCMS 正确检测这些状态的方法是什么?
您可以检查 apos.modules['apostrophe-workflow'].locale
,如果处于草稿模式,它将以 -draft
结尾:
if (apos.modules['apostrophe-workflow'].locale.match(/-draft$/)) {
// draft mode
} else {
// live mode
}
检测预览模式也很简单。首先检查草稿模式,然后检查模板中的任何位置 data.workflowPreview
:
data.workflowPreview
这不会被推送到前端 javascript 变量中,但您可以自己做:
<script>
window.workflowPreview = {{ data.workflowPreview | json }};
</script>