是否有办法单独设置“最新”页面和“热门”页面的样式?

是的,@manuel 的解决方案是实现目标的一种简单方法。使用 window.location.href,由于 Ember 的 runloop,您可能会遇到获取正确 URL 的问题。

要将您正在做的事情调整为更“Ember”的方法,可以这样做:

<script type="text/discourse-plugin" version="1.1.0">
  api.onPageChange(() => {
    const router = api.container.lookup('service:router');

    if (router.currentRoute.name === 'discovery.top') {
      document.querySelectorAll('#main-title')[0].style.display = 'none';
    }
  });
</script>

但是,最好是添加一个 body 类并设置该类的样式,这样也可以进行更复杂的样式更改。

<script type="text/discourse-plugin" version="1.1.0">
  api.onPageChange(() => {
    const router = api.container.lookup('service:router');

    if (router.currentRoute.name === 'discovery.top') {
      document.body.classList.add('route-discovery-top');
    } else {
      document.body.classList.remove('route-discovery-top');
    }
  });
</script>
.route-discovery-top #main-title {
    display: none;
}
3 个赞