gpt4 book ai didi

javascript - 如何在 Ember.js 上制作仪表板(在应用程序级别有一个项目计数器)

转载 作者:行者123 更新时间:2023-11-28 08:18:22 25 4
gpt4 key购买 nike

所以,这解释起来并不简单,但我有我的 Ember 应用程序,带有我的路线、 Controller 和 View 等,它是关于职位列表的,这是应用程序最重要的部分,但我还有其他模型,对于用户和公司。因此,在 ApplicationRoute 中,我在这里做这件事:

renderTemplate: function() {
this.render({ controller: 'jobs' });
}

因为在我的作业 Controller 上,我需要计算我拥有的列表数量,以显示在每个页面上显示的菜单中,如下所示: jobsCount

我通过在 jobsController 执行此操作来获取此数字:

jobsCount: function() {
return this.get('model.length');
}.property('@each')

效果很好,因为我的主页是职位列表,它调用所有职位的 /api/jobs/ 。当我在任何其他页面启动应用程序时,例如直接访问 /jobs/:id//admins/ 或其他任何页面,都会出现问题,计数将为零,因为 jobsController 未加载,并且我没有从 api 获取作业数量(例如,直接访问 /api/jobs/:id/)。访问主页后会加载广告数量,因为它会调用 /api/jobs/ 及其上的所有职位。因此,解决此问题的方法之一是将 ApplicationsRoute 的模型也设置为作业,这会导致每次应用程序第一次加载时都会产生两个请求,这工作正常,但我不这样做我不喜欢仅仅为了获取一个数字而必须执行两个请求的想法,特别是大多数时候要加载的第一个页面是主页,导致对同一 URL (/api/jobs/)。

无论如何,是否可以在不执行两个请求的情况下执行此操作,例如如果我访问职位列表(/jobs/:id/)以强制其加载/api/jobs/ 然后查找 id,而不是加载 /api/jobs/:id/,或者这也不是一个好的解决方案?我应该在 API 上有一个特定的 URL 来加载这些数字吗?

问题足够清楚吗?

谢谢。

最佳答案

我也遇到了类似的问题,最终我决定放弃 DRY。在您的示例中,这意味着在用户进入应用程序时可能调用的所有路由渲染的 json 中渲染 job_count 。这使得应用程序的设计有点困惑,但这意味着您永远不必进行多次调用。

但是,如果您的应用程序到达用户首次加载应用程序时 ember 需要访问的大量不相关数据的位置,那么您应该专门创建一个 url 来加载该数据,是的,在初始时发出两个请求加载。就用户体验而言,稍长的初始加载时间是无关紧要的,因为 ember 为此后输入的每条路线提供了改进。请记住,无论如何,通过渲染客户端,ember 在初始加载时总是比传统的服务器渲染应用程序慢。恐怕这是必须做出的权衡。

关于javascript - 如何在 Ember.js 上制作仪表板(在应用程序级别有一个项目计数器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23327863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com