问题标签 [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 不在 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.
这是其中一个组件的示例:
有人对此事有任何线索吗?
ember.js - 将数据从 Ember 组件传递到模型
我是 Ember 的新手,我正在尝试弄清楚如何最好地使用组件来更改模型。我试图弄清楚我在 Ember 1.13.7 上并使用 FixtureAdapter。我有以下代码:
应用程序/模型/client.js
应用程序/路由/clients.js
应用程序/模板/客户端/edit.hbs
应用程序/组件/bootstrap-input.js
应用程序/模板/组件/bootstrap-input.hbs
现在您可以看到,更改不会反映在传递的模型中,因为它是一种单向绑定(我认为这是怎么回事?),或者更确切地说不直接引用模型。当我不使用 positionalParams 并将模型直接传入组件时,它工作正常。例如:
但据我了解,这不是在 Ember 2 中执行此操作的正确方法。如何将组件中所做的更改更改为模型,以便将其保存在路由中?
ember.js - didInsertElement 仅用于单个元素 EmberJs
我只想在一个元素上调用 didInsertElement 而不是在其他元素上调用,我有一个包含多个元素的组件模板,但我只想在特定元素上使用它。
任何想法如何做到这一点?是否有可能,如果是的话,是否有良好的实践......并且组件具有多个指向其他组件的元素,可以吗?
javascript - EmberJS:toggleProperty 将组件的所有属性设置为默认值
我正在尝试在 Ember 2.0.1 中实现嵌套组件,但是toggleProperty
在操作处理程序中使用函数时出现了奇怪的行为。
第一个组件如下所示:
.
第二个是:
.
该组件comp-2
创建两个按钮,其名称为由 comp- 1设置的 Text。如果我单击一个按钮,文本将更改为由 comp - 2设置的文本,因为执行了this.toggleProperty('prop1')
在操作处理程序中调用的函数customAction1
。如果我删除此功能或删除prop1
from的设置,./templates/components/comp-2.hbs
那么一切都会按预期工作,即按钮的文本始终保持为由 comp- 1设置的文本。
为什么toggleProperty
函数会设置其他属性?
难道我做错了什么?
可以在此处查看实际行为:http: //ember-twiddle.com/90798b4952deb4a83de1
ember.js - 如何在模型中设置基于 Ember 组件的数据的类?
我正在尝试为基于数据属性的组件设置类名。我成功地将数据设置到 template.hbs 并且我看到该组件已呈现。但是在component.js里面我不能设置类名
这是行不通的。类名不计算。我怎样才能做到这一点?
这是我的路线:
和模板.hbs
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 被拉了过去)
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 逻辑正确处理这个问题?
ember-cli - 如何“打包”一个 Ember CLI 组件?
我正在使用 ember-cli,并使用 ember-cli 语法和命名约定制作了一个自定义组件。这是一个高度可重用的组件,我想知道将它全部放入“包”的更好方法是什么,以便轻松集成到其他项目中。
我的组件将一个.js
文件用于Ember.Component
子类,一个.hbs
文件用于模板,另外几个.js
文件用于必要的Ember.View
子类。现在,每个文件都与我项目其余部分的文件一起位于其各自的文件夹中。
如何隔离与组件相关的文件并将它们打包以供重用?$.fn
在 Ruby on Rails 中,我使用 gems 来解决这个问题,而在 jQuery 中,我曾经通过在单个文件中扩展来编写插件。
ember.js - Ember 2.0 组件 - 属性命名约定
组件属性是否有约定或首选命名约定?
我见过破破烂烂的:
和骆驼套:
我原以为 ember 作为一个固执己见的框架,至少会强制执行这些命名约定中的一个。
javascript - Ember {{component}} 自定义组件
我是 Ember 的新手,在我的 Handlebars 中注意到以下代码:
Ember 有类似的帮手{{component}}
吗?如果是,它是如何工作的?
我通常看到自定义助手:
但是有同名组件 hbs/js 支持它吗?
但我不知道{{component}}
助手。