问题标签 [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.
javascript - Ember,生成 URL `url-to`?
我想生成一个资源的 URL 并将其显示给用户。我找到了链接,但我不想要整个<a>
元素,只想要 URL。
就像是:
javascript - EmberJS,如何为不同的“环境”管理不同的“配置变量”
emberjs标签下有几个问题是关于如何管理不同的环境,但它们都只适用于非常具体的场景。
我正在寻找如何为不同环境设置不同配置变量的通用解决方案。
假设我有一个用于我的开发环境的 API URL 和另一个用于我的生产环境的 API URL。
在我的适配器中,我想使用适当的 API URL:
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。
javascript - EmberJS,如何不呈现父视图
我有这个router
:
而这些templates
:
所以这就是为每个渲染的route
所以对于路线/battles/B2/combats/new
,模板app/templates/battles/battle/combats/new.hbs
不会被渲染。这有一个快速修复:
但随后路线呈现:
而且我不希望在渲染表单时渲染战斗列表。combat/new
我想要这个:
如何创建此设置?
javascript - EmberJS,如何使用根路径导入文件?
我model
在这条路上有这个:
我想从route
这个路径中导入它:
导入语句如下所示:
这条路很疯狂,我必须使用试错系统来弄清楚它。此外,如果我想在另一个组件中导入相同的模型,我不能只是复制和粘贴,因为此路径仅在特定路径中有效。出于同样的原因,如果我更改导入模型的组件的路径,我必须更新导入路径。
我想拥有相对于项目根目录的路径,例如:
这可能吗?
javascript - EmberJS,如何在子模板中访问父控制器中的模型
我有这个router
:
在战斗路线中,我可以使用以下方法轻松访问战斗模型:
但是,如果我也想在战斗模板中访问这个模型,事情就会变得复杂:
我已经解决了从战斗路线向战斗控制器发送属性的问题:
但我不知道这是否是正确的方法,在我看来它看起来太间接了,就像你必须做一个很长的解决方法才能使这个属性在模板中可用。
ember.js - 在组件中使用 this.sendAction()?
我正在使用 Ember 2.2.0
在编写组件时,我曾经使用this.sendAction(…)
. 我最近查看了文档,发现他们建议了另一种方法。
https://guides.emberjs.com/v2.2.0/components/triggering-changes-with-actions/
由于 Ember 以非常固执己见而著称,因此我希望尽可能坚持最佳实践。但我不确定文档是否可能已过时,或者使用 sendActions 的教程是否已过时。
所以我想这样做的方法是什么?
ember.js - 如何从 Ember 2 中的查询参数中获取对象?
在 Ember 2 中,对于查询字符串为 的 URL ?q[a]=1&q[b]=2
,如何在控制器中获取这些参数?
我能够得到一个字符串 ( q=foo
) 和一个数组 ( q[]=1&q[]=2
),但我无法得到上面提到的对象。
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 本身,我如何能够在整个应用程序中访问会话令牌?
编辑:根据评论更新问题。我的受保护路线如下所示:
不幸的是,我仍然无法获取会话数据。
ember.js - 如何使用 ember 2.3 在一个模板文件中渲染多个插座
我正在尝试将多个 .hbs 片段呈现到它们各自的插座中。但是,以下 renderTemplate 不起作用:
有问题的模板文件如下所示:
这实际上会渲染默认模板(这是索引路由)两次:一次在 hero 出口中,一次在常规出口中。
这似乎在 ember1.7 中有效,即使 hero 出口包含在 application.hbs 模板中。ember2.3 并非如此。
我将如何进行这项工作?