问题标签 [ember-components]
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.
ember.js - Ember 与无关组件的路由通信
我知道 EmberJS 提倡“数据下降,行动上升”,但我有一个场景,我不确定如何适应该范式。最好用一个与我想要达到的目标类似的例子来解释。
假设我有一个固定的标题组件(' fixed-header
')。我希望这个标题总是出现,所以我当然将它添加到我的主应用程序模板中:
现在假设我希望我的标题显示有关我所在路线的一些信息。为简单起见,假设每条路线都有一个我想在固定标题中显示的标题。因此,无论我是 on /foo
or/foo/bar/baz
还是/wackawacka/meh?cat=meow
,我都希望该路由能够将一些数据发送到fixed-header
组件以进行显示。换句话说,我有点想反对“数据下降”并做一个“数据上升”。
解决这个问题的理想方法是什么?我的第一直觉是创建一个服务来my-header
监听并且路由可以发布他们的信息。但这是正确的做法吗?创建一个服务只是为了发送一点文本对我来说似乎很奇怪。还有其他方法吗?
ember.js - 如何在 Ember JS 中将组件动态加载到容器中
我有一个容器组件
谁的 .hbs(模板)文件有一个
单击按钮时,我希望将另一个组件(例如 {{image}} 加载到其中。
这可能吗?
ember.js - 在 EmberJS 中从父组件访问组件的实例
我有一个“容器”组件
模板是
现在,从“容器组件”实例中。如何访问计算的“displayComponent”实例?
关于我如何去做的任何想法?
当我使用get方法时,我得到了组件的字符串标识
ember.js - 2.10 中的 Ember 组件创建错误
当我在 mixin 的单元测试中执行 Ember.Component.Create() 时,我得到了这个错误。我正在将 ember 从 1.13 升级到 2.10,此测试在 1.13 中运行良好,但在 2.10 中出现此错误。看起来在 2.10 ember 组件初始化需要一个应用程序实例。
我尝试过的几件事:
在 setup 和 destroy 中启动 App(),类似于集成测试
要覆盖 init 但 init 总是需要调用 _super()
试图在创建应用程序的集成测试环境中执行
ember.js - 有没有办法表示路由关闭操作,而不是将它们全部写入组件 shim?
我正在使用ember-route-action-helper
我有一个看起来像这样的组件垫片:
PS 以上动作未使用真实动作名称
有很多动作需要冒泡到路由,我不在我的 ember 应用程序中使用控制器。
由于动作太多,这看起来有点笨拙。有没有办法以另一种格式表示相同的信息或将其写入我的组件.hbs
文件或.js
文件中的其他位置?
javascript - Ember.js 组件集成测试:如何使用全局注入和嵌套组件?
场景:我想使用真实的服务集成测试组件my-service
A。我有一个初始化程序,它将服务全局注入所有组件:application.inject('component', 'myService', 'service:my-service');
. 组件 A 在其模板中使用组件 B,并且它们都myService
在其模板中使用。
如何重新创建全局注入?没有完整的应用程序,所以我无法导入和运行真正的初始化程序,因为我没有所需的参数。this.inject.service
不起作用,因为它将其注入测试上下文,而不是全局应用程序上下文。
我可以更改所有组件的模板以将服务一直链接下来:{{b-component myService=myService}}
,然后
但这是最后的手段。我还可以摆脱全局注入并手动注入每个组件。这也是最后的手段。
我已经在https://github.com/emberjs/ember.js/issues/12277找到了有关此问题的讨论。它几乎已实现,但随后因大测试统一而关闭https://github.com/emberjs/rfcs/pull/119。在我们等待大测试统一的同时,现在有什么解决方案吗?
ember.js - Ember 2 - 过渡到通过组件的路由
我正在尝试为 ember 2 应用程序制作分页组件。由于它是一个通用的分页组件,我想在许多不同的路线上使用它。因此,我需要以某种方式(在我的脑海中)提供我的路线名称,以便分页链接工作。
我可以轻松地将我的路由名称(字符串)传递给组件:
{{pagination-component myRoute='myCurrentRouteName'}}
. 在组件内部:{{link-to myRoute (query-params page=1)}}
它适用于以下页面:<< First, < Previous, Next > , Last >>。
但我也希望有一个带有指向所有页面的选项的选择框,如果用户选择一个页面,我可以使用类似于这样的 queryParams 转换到该路由myRoute?page=selectedPage
:ember 的所有教程都说在组件内进行转换是禁忌。
但是我该怎么做呢,因为我希望我的分页是通用的,并且我不想在处理分页并提供相同精确转换的每条路线中都采取行动?
到目前为止,我发现我可以将“-routing”注入到组件中,这可以在组件内进行转换,但由于某种原因它也不能安静地工作。另外,人们说它是私人的,不可靠的。我还尝试制作一个带有动作的 Route Mixin,这样我就可以简单地sendAction
从带有 的组件中获取selectedPage
,但我不知道如何router.transitionTo
在我的 Mixin 中获取路由器(以便调用)。
ember.js - 如何在没有控制器余烬的情况下重新渲染另一个组件内的子组件
我有一个父组件名称-card -mode
在这个卡片模式组件中,我将通过调用 setcard 方法来渲染一个组件。
直到这个它工作正常。
但是现在,我必须在父组件中多次渲染同一个子组件。
认为 child-page-1, child-page-2 是应该在父组件中呈现的两个子组件。child-page-1 和 child-page-2 在我使用上一个和下一个操作调用它们时完美呈现。
但是当我再次尝试调用 child-page-2 时,不会再次调用 child-page-2 初始化函数。
我的问题:
我应该如何再次重新渲染子组件。我没有使用任何控制器和模型,因为我不需要它们。
javascript - 将值从 ember 组件发送到父模板
我想将一个 ember 组件传递给另一个 ember 组件 ( lat
) 。我的车把模板:lng
g-map
这是我的文本自动完成组件:
我想将组件中的和值传递给lat
组件lng
以在谷歌地图中绘制标记。text-autocomplete
g-map
谁能解决这个问题?:(
javascript - ajax请求ember通过组件
我只想从组件的 ember 服务中的 json 请求中获取价值。这是我的代码
预测天气.js(服务)
天气显示.js(组件)
json响应
天气显示.hbs
我只是想将风速值从 json 传递给 hbs 模板,但它不起作用。任何人都可以解决这个问题:(