问题标签 [ember.js-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
49 浏览

javascript - Ember,生成 URL `url-to`?

我想生成一个资源的 URL 并将其显示给用户。我找到了链接,但我不想要整个<a>元素,只想要 URL。

就像是:

0 投票
1 回答
183 浏览

javascript - EmberJS,如何为不同的“环境”管理不同的“配置变量”

emberjs标签下有几个问题是关于如何管理不同的环境,但它们都只适用于非常具体的场景。

我正在寻找如何为不同环境设置不同配置变量的通用解决方案。

假设我有一个用于我的开发环境的 API URL 和另一个用于我的生产环境的 API URL。

在我的适配器中,我想使用适当的 API URL:

0 投票
0 回答
73 浏览

ember.js - 添加/删除与 Ember.js / Ember-Data 的关系,告诉 API 发生了什么变化?

我有两个处于多对多关系的模型。在 Ember 方面,我在我的模型中进行了设置。当我去添加我正在使用的他们两个之间的新关系时model.get('relationshipName').pushObject(otherObject),然后model.save(); 对 API 的调用继续并简单地将所有已知关系列为 ID 数组。这里的主要问题是,这是正确的吗?API 必须随后获取已知关系列表并将其与 Ember 发送的关系列表进行比较,这似乎有点奇怪。有没有更好的方法来解决这个问题,以便我可以更好地通知 API 哪些关系已被修改,无论是添加新关系还是删除现有关系?

这是使用 Ember 2.2 和 Ember-data 2.2 以及默认的 RESTAdapter。

0 投票
1 回答
12 浏览

javascript - EmberJS,如何不呈现父视图

我有这个router

而这些templates

所以这就是为每个渲染的route

所以对于路线/battles/B2/combats/new,模板app/templates/battles/battle/combats/new.hbs不会被渲染。这有一个快速修复:

但随后路线呈现:

而且我不希望在渲染表单时渲染战斗列表。combat/new我想要这个:

如何创建此设置?

0 投票
1 回答
1651 浏览

javascript - EmberJS,如何使用根路径导入文件?

model在这条路上有这个:

我想从route这个路径中导入它:

导入语句如下所示:

这条路很疯狂,我必须使用试错系统来弄清楚它。此外,如果我想在另一个组件中导入相同的模型,我不能只是复制和粘贴,因为此路径仅在特定路径中有效。出于同样的原因,如果我更改导入模型的组件的路径,我必须更新导入路径。

我想拥有相对于项目根目录的路径,例如:

这可能吗?

0 投票
1 回答
387 浏览

javascript - EmberJS,如何在子模板中访问父控制器中的模型

我有这个router

在战斗路线中,我可以使用以下方法轻松访问战斗模型:

但是,如果我也想在战斗模板中访问这个模型,事情就会变得复杂:

我已经解决了从战斗路线向战斗控制器发送属性的问题:

但我不知道这是否是正确的方法,在我看来它看起来太间接了,就像你必须做一个很长的解决方法才能使这个属性在模板中可用。

0 投票
2 回答
12006 浏览

ember.js - 在组件中使用 this.sendAction()?

我正在使用 Ember 2.2.0

在编写组件时,我曾经使用this.sendAction(…). 我最近查看了文档,发现他们建议了另一种方法。 https://guides.emberjs.com/v2.2.0/components/triggering-changes-with-actions/

由于 Ember 以非常固执己见而著称,因此我希望尽可能坚持最佳实践。但我不确定文档是否可能已过时,或者使用 sendActions 的教程是否已过时。

所以我想这样做的方法是什么?

0 投票
1 回答
55 浏览

ember.js - 如何从 Ember 2 中的查询参数中获取对象?

在 Ember 2 中,对于查询字符串为 的 URL ?q[a]=1&q[b]=2,如何在控制器中获取这些参数?

我能够得到一个字符串 ( q=foo) 和一个数组 ( q[]=1&q[]=2),但我无法得到上面提到的对象。

0 投票
1 回答
420 浏览

ember.js - 如何在 Ember.js 2.3 中获取 Auth0 创建的会话数据

我正在使用 Ember.js 2.3(和 Ember-Data 2.3)。我正在使用 Auth0 设置一个简单的用户身份验证过程。还没有什么花哨的,只是根据以下方式安装了 Auth0:

https://auth0.com/docs/quickstart/spa/ember2js/no-api

现在,我的设置与此处给出的项目几乎完全相同。但是,似乎我只能从 application.hbs 访问会话,而不能访问任何其他模板。或者路线。或者别的什么。

所以这个车把片段:

这适用于 application.hbs,但不适用于其他地方。这对我来说没有意义。如果 Auth0 本身说 session.data 可以从任何模板访问,并且这样的车把片段甚至存在,那么一定是我遗漏了一些东西。我需要能够显示客户端的某些部分,并根据当前登录的用户(以及是否有人实际登录)限制某些操作,所有这些都包含在 session.data 对象中。

将这个对象传递给我要创建的每个组件似乎并不合适,我现在能想到的唯一获取这些数据的方法就是从 localStorage 中手动获取它。我也许可以将这个手动过程变成一个 mixin 并将它包含在任何地方,但在我尝试找到迂回解决方案之前,我想确保我不会在实现本身中遗漏一些东西。

除了 application.hbs 本身,我如何能够在整个应用程序中访问会话令牌?

编辑:根据评论更新问题。我的受保护路线如下所示:

不幸的是,我仍然无法获取会话数据。

0 投票
1 回答
1270 浏览

ember.js - 如何使用 ember 2.3 在一个模板文件中渲染多个插座

我正在尝试将多个 .hbs 片段呈现到它们各自的插座中。但是,以下 renderTemplate 不起作用:

有问题的模板文件如下所示:

这实际上会渲染默认模板(这是索引路由)两次:一次在 hero 出口中,一次在常规出口中。

这似乎在 ember1.7 中有效,即使 hero 出口包含在 application.hbs 模板中。ember2.3 并非如此。

我将如何进行这项工作?