问题标签 [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.

0 投票
1 回答
368 浏览

ember.js - Ember 不在 DOM 中时重新渲染

我有来自同一模型的四个组件设置。根据项目的状态,它将显示在四个组件之一中。

组件是:is-new、is-ready、is-started、is-completed。

在每个组件上,我都有一个时间戳,我想不断更新。然而,每当模型的 DOM 或状态更新时,Ember 就会出现以下错误。

Something you did caused a view to re-render after it rendered but before it was inserted into the DOM.

这是其中一个组件的示例:

有人对此事有任何线索吗?

0 投票
1 回答
320 浏览

ember.js - 将数据从 Ember 组件传递到模型

我是 Ember 的新手,我正在尝试弄清楚如何最好地使用组件来更改模型。我试图弄清楚我在 Ember 1.13.7 上并使用 FixtureAdapter。我有以下代码:

应用程序/模型/client.js

应用程序/路由/clients.js

应用程序/模板/客户端/edit.hbs

应用程序/组件/bootstrap-input.js

应用程序/模板/组件/bootstrap-input.hbs

现在您可以看到,更改不会反映在传递的模型中,因为它是一种单向绑定(我认为这是怎么回事?),或者更确切地说不直接引用模型。当我不使用 positionalParams 并将模型直接传入组件时,它工作正常。例如:

但据我了解,这不是在 Ember 2 中执行此操作的正确方法。如何将组件中所做的更改更改为模型,以便将其保存在路由中?

0 投票
1 回答
81 浏览

ember.js - didInsertElement 仅用于单个元素 EmberJs

我只想在一个元素上调用 didInsertElement 而不是在其他元素上调用,我有一个包含多个元素的组件模板,但我只想在特定元素上使用它。

任何想法如何做到这一点?是否有可能,如果是的话,是否有良好的实践......并且组件具有多个指向其他组件的元素,可以吗?

0 投票
1 回答
6528 浏览

javascript - EmberJS:toggleProperty 将组件的所有属性设置为默认值

我正在尝试在 Ember 2.0.1 中实现嵌套组件,但是toggleProperty在操作处理程序中使用函数时出现了奇怪的行为。

第一个组件如下所示:

.

第二个是:

.

该组件comp-2创建两个按钮,其名称为由 comp- 1设置的 Text。如果我单击一个按钮,文本将更改为由 comp - 2设置的文本,因为执行了this.toggleProperty('prop1')在操作处理程序中调用的函数customAction1。如果我删除此功能或删除prop1from的设置,./templates/components/comp-2.hbs那么一切都会按预期工作,即按钮的文本始终保持为由 comp- 1设置的文本。

为什么toggleProperty函数会设置其他属性?

难道我做错了什么?

可以在此处查看实际行为:http: //ember-twiddle.com/90798b4952deb4a83de1

0 投票
1 回答
100 浏览

ember.js - 如何在模型中设置基于 Ember 组件的数据的类?

我正在尝试为基于数据属性的组件设置类名。我成功地将数据设置到 template.hbs 并且我看到该组件已呈现。但是在component.js里面我不能设置类名

这是行不通的。类名不计算。我怎样才能做到这一点?

这是我的路线:

和模板.hbs

0 投票
1 回答
545 浏览

jquery - 使用 bootstrap-select 创建 Ember.js 组件,将 Ember 添加到 DOM 元素

我正在尝试将bootstrap-select包装在一个组件中,作为我学习和理解 Ember.js 的一部分。但是,我遇到了一个问题,Ember 似乎干扰了插件创建的 DOM 元素。

当使用.selectpicker()on didInsertElement(甚至通过 Ember 运行循环)调用插件时,它会错误地生成/修改下拉列表的 DOM。里面的文本<options>被转换成<!---->,这与 Glimmer AFAIK 有关。

 

有问题的 DOM 元素 - 请注意<!---->出现在文本位置的 DOM 元素。

<select>Ember 生成的没有bootstrap-select

再一次,当从控制台完成时,这工作得很好。有任何想法吗?我在这里束手无策。

更新:只是为了表明这对实际被拉入的机会和一切都是有效的——只是由 bootstrap-select 生成的下拉列表中的文本是空白的。它仍然是可选的。Ember Twiddle 在这里:http ://ember-twiddle.com/5637ed5974e5d1e79906 (我无法让 selectpicker 在 Ember Twiddle 中实际工作,但你会看到 opps 被拉了过去)

下拉菜单有效,存在机会,但缺少文本

0 投票
1 回答
2685 浏览

javascript - 创建未附加到商店的 Ember 模型实例

我将 Ember 2.0 与 ember-data 2.0 一起使用。

在 Rails 中,使用模型的真实实例对表单和组件进行建模是很常见的。对于posts/new表单,您将传入 aPost.new并在form.html.erb模板中使用它。

在 Ember 中,这很困难,因为调用new Post会创建一个损坏的模型。相反,我们鼓励您使用商店,并且使用this.store.createRecord('post');.

这很好,但在构建独立组件时就不行了。例如,用户可以添加多个模型的表单,例如类别创建者。在我看来,结构如下:

category-form/template.hbs

然后 component.js 会是这样的:

category-form/component.js

上面的示例确实有效,但需要this.store.createRecord. 但据我所知,该组件无权访问商店。这是理智的,因为那将是与全局状态混淆的组件。此外,createRecord如果用户在不保存模型的情况下导航离开,那么在使用时,您最终会在商店中留下大量剩余模型。

我希望category-form此示例中的组件与全局状态的其余部分完全隔离。

我的问题是,如何使用 ember 逻辑正确处理这个问题?

0 投票
1 回答
88 浏览

ember-cli - 如何“打包”一个 Ember CLI 组件?

我正在使用 ember-cli,并使用 ember-cli 语法和命名约定制作了一个自定义组件。这是一个高度可重用的组件,我想知道将它全部放入“包”的更好方法是什么,以便轻松集成到其他项目中。

我的组件将一个.js文件用于Ember.Component子类,一个.hbs文件用于模板,另外几个.js文件用于必要的Ember.View子类。现在,每个文件都与我项目其余部分的文件一起位于其各自的文件夹中。

如何隔离与组件相关的文件并将它们打包以供重用?$.fn在 Ruby on Rails 中,我使用 gems 来解决这个问题,而在 jQuery 中,我曾经通过在单个文件中扩展来编写插件。

0 投票
1 回答
185 浏览

ember.js - Ember 2.0 组件 - 属性命名约定

组件属性是否有约定或首选命名约定?

我见过破破烂烂的:

和骆驼套:

我原以为 ember 作为一个固执己见的框架,至少会强制执行这些命名约定中的一个。

0 投票
1 回答
70 浏览

javascript - Ember {{component}} 自定义组件

我是 Ember 的新手,在我的 Handlebars 中注意到以下代码:

Ember 有类似的帮手{{component}}吗?如果是,它是如何工作的?

我通常看到自定义助手:

但是有同名组件 hbs/js 支持它吗?

但我不知道{{component}}助手。