问题标签 [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.js 中的父属性?(特别是数字输入的行为)
我想编写一个将 Ember Input 扩展为数字输入的新组件。当此类的用户将他们的值绑定到number-input-component 的value
属性时,他们应该只得到一个数字(或 NaN 表示无效值)。在 Ember 输入中,值具有属性绑定。
我在number-input-component上定义了一个名为“value”的计算属性,如下所示:
它按预期工作,但不能在双向绑定中工作。(其实 DDAU 没问题,但是应该可以双向绑定。)
注意:我知道我可以提供另一个属性,例如“numericValue”(如图所示),以便用户可以将他们的值绑定到“numericValue”。但我不想将用户与value和numericValue 混淆。
更新:
键入该字段时,任何拼写错误都不应重置该值。例如,当用户尝试写入“123456789”并意外按下“12345678p”时,不应导致输入复位。当 value 无效时,既不显示错误消息也不重置 value 不是组件的责任。
你可以看到一个小提琴:Ember-Twiddle
ember.js - Emberjs - 保存后如何重置组件上的字段?
我在游戏中有一个名为 Comment 的嵌入式对象。每个游戏可以有很多评论。
当用户(称为家长)查看游戏页面时,他们可以发表评论。
我遇到的问题是,在保存评论后,我似乎无法将评论字段的正文重置为空。
这是组件:
错误出现在“this.set”行 - this.set 不是函数
我发现的所有示例都是关于在控制器中执行此操作或通过在路由更改时创建新记录(但在我的示例中路由没有更改,因为它只是将另一个嵌入式对象添加到现有页面)。
ember.js - 如何在组件中传递控制器观察到的属性
我正在开发一个应用程序,我将在控制器中观察到的属性传递给组件,但我得到了未定义的值。我正在使用 ember 1.6
我如何称呼组件:-
组件实现是:-
})
用作组件值的currentVal是控制器中观察到的属性。每当我滑动滑块时,currentVal 都会更改,因为它与组件绑定。默认值为 50。控制器工作正常。
控制器部分是:-
在组件中,我正确地获得了最小值,但没有获得值。它即将到来未定义。
如何获取组件中的属性值?
更新
我可以通过组件中的以下方法获取变量:-
1)如果我将变量直接传递给具有静态值的组件,则它可以工作。例如,在范围滑块组件中传递的最大值。
2)如果我传递一个在控制器中定义的静态变量,例如在控制器中
如果我将虚拟值传递给组件,我可以在组件部分读取它。
但是,如果该属性是计算属性,那么它就不起作用。
jquery - 如何在 ember 集成测试中聚焦/模糊组件?
如何在测试 Ember.js 组件时触发焦点和模糊事件?
this.$().focus();
或者this.$('input').focus();
似乎工作但在 phantomjs 和 chrome 中表现不同。
也this.$().blur();
或this.$().focusout();
似乎无法同时使用 phantomjs 和 chrome。
javascript - Ember.js (v2.4.5) 组件没有传递第二个动作
我有一个非常简单的组件,它有两个动作,开始和停止。单击按钮时会触发这些。第一个动作冒泡到路由并按预期工作,但是第二个动作在组件中触发,但从未到达路由。
我刚开始玩 Ember,但我认为组件可以执行多个操作?
控制台中没有错误,该按钮不执行任何操作,并且永远不会显示来自路由的控制台日志。
组件动作
路由操作
模板
css - 在 Ember.js 中的哪里放置 CSS 文件?
我们的应用程序中有一些自定义样式定义。目前所有的开发者都在为app.css
. 但我们不想让它成为一个巨大的文件。而且我们也不想弄乱样式类。
我们如何将自定义样式放置在我们的应用程序中?有最佳实践吗?(欢迎所有指南/文档参考。)
第二个问题:是否有地方放置特定路线或组件的样式?
更新:更具体地说,我想将以下样式仅应用于特定的路由或组件:
ember.js - 在 init 赋值后,emberjs 双向绑定暂时中断
我正在尝试在init
生命周期挂钩中为我的一个组件分配默认值;以防从父组件传递未定义的值。最初,一切似乎都按预期工作。但是,当我的组件被强制重新渲染时(可能通过父组件的另一个属性值更新);父组件的未定义值被写回我的组件。
这表示; 我在初始化时所做的赋值并没有反映到父组件上,也就是说双向绑定暂时不起作用(父子组件的值不同步)。这是预期的行为还是我错过了什么。对 init 事件重要吗?初始化组件的未定义值的合适位置在哪里?请参阅twiddle以获得简单的说明。
ember.js - 为什么在 init 和 didUpdateAttrs 分配属性不同?
在Ember.js Guide,有一个这样的例子:
为什么在和
处分配给errors
属性不同?他们有什么区别?init
didUpdateAttrs
根据@locks 答案更新:
什么时候设置可观察性?初始化后?但是父组件的值在初始化之前已经分配给子组件的属性。
javascript - 为每个表格行创建一个 Ember.js 组件会导致宽度发生变化?
在我的 Ember.js 应用程序中,我在 Hanldebars 模板中有一个标准的 HTML 表格,如下所示:
这很好用,但是我必须将每个表行转换为一个组件才能添加一些逻辑等。我现在没有直接添加行,而是:
如您所见,我现在有一个名为 table-row 的组件,其中包含<tr>
上述 HTML 中的整个第一个和第二个(带有 colspan="3")元素。问题是,当我将它作为组件插入时,Ember 将两行包装在 a 中<div>
,这会导致这些行尴尬地显示出来。它不占用桌子的宽度和桌头。我怎样才能解决这个问题?
ember.js - 如何在另一个控制器余烬中绑定应用程序控制器属性
我在 ApplicationController 中有搜索属性,它与搜索的输入字段相关联。我想访问 ProjectController 中 ApplicationController 的搜索字段。它应该是同步的。我使用以下代码,但它不起作用。
/app/controllers/projects/index.js(项目控制器)
/app/controllers/application.js(应用控制器)
应用程序.hbs
{{input value = search}
}