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

0 投票
1 回答
49 浏览

javascript - 在 Ember.js 2.3 中,如何将 hasMany 异步调用编译为 ember 中的一个调用而不是多个调用?

我正在升级到 ember-cli 和 ember 2.3。假设我有一个名为 User 的模型和一个名为 Post 的模型,还有一个 user ...

现在,这按我期望的方式工作,延迟加载数据而不加载帖子,除非 .js 或模板中需要它。所以当我这样做的时候

我让每个帖子都毫无问题地呈现其标题。但是,在我的服务器日志中,我看到了这一点:

其中数字是帖子 ID。这是意料之中的,因为当我从服务器返回一个用户实例时,我会返回一个 ID 列表作为参数“posts”。所以用户实例有:

在其数据中。

现在我的问题是:当我使用 ember-data 1.0(pre ember-cli 和 pre ember 1.13)时,我记得这个调用是针对同一个用例对数据库进行的:

或沿着这条线的东西。我不记得确切的格式,但是,我可以使用这行代码访问服务器端的 id 列表:

这给了我一个逗号分隔的 id 列表(字符串格式)。然后我会将其转换为 sql 语句

我认为,这个 SQL 调用在 Ember 端被解释为 manyArray,并且很容易像您期望的 Ember 数组那样表现。

我怎样才能让这种情况再次发生?我非常有信心我遗漏了一些东西,并且我不必“破解” ember-data;我非常想将这些调用压缩为一个,而不是为每个“帖子”单独调用数据库。

我还应该提到,我不打算为这些调用进行 {async:false}。

0 投票
1 回答
68 浏览

javascript - 在 Ember 2 中,将 on=keypress 事件绑定到 {{input}} 时,我无法获取事件对象

在 Ember 2 中,我正在尝试做可能是最简单的事情。当我将事件绑定到输入元素时,我希望将事件参数传递给我的动作处理程序,但我无法得到它。只需检查keyCode 13,它是键盘上的“输入”键。

我的函数处理程序是:

0 投票
2 回答
1222 浏览

ember.js - Ember.js 2.3 在 HasMany 关系上实现 @each.property 观察者?

假设我有一个 hasMany 关系 Procedure => hasMany Steps,带有 async:true,并且我有一个名为 procedure-main 的过程组件(在过程路由上),它列出了如下步骤:

我需要在任何步骤上更改 stepStatus 时观察每个步骤的属性(例如 stepStatus)。在 Ember 1.7 中,我在过程控制器上有这样的东西:

这是在任何步骤上的 stepStatus 更改时触发的,并且每当状态更改时,我在此函数中所拥有的任何内容都会被触发。但是,在 Ember 2.3 中,我无法实现这一点。我试过了

但这只会在页面上列出步骤时触发一次。当我将一个步骤的状态更改为新值时,该函数永远不会被触发。

如何在 Ember 2.3 中复制此功能?

注意:在我的用例中,我不能依靠单击按钮手动设置观察者内部的功能,因为如果在任何步骤上更改了 stepStatus 属性,它必须自动触发。

0 投票
1 回答
129 浏览

ember.js - ember 适配器 url - 按 id 模式查找 - 嵌套的 api 资源

我有一个具有特定 url 结构的 api。如何使用适配器或其他东西将 ID 传递给 url 字符串?只有一个模型,patient但我需要查询这些项目中的每一个以及更多。我已经看到可以将 id 放在 url 末尾的位置,但我不确定如何为查找查询构建附加字符串。谢谢!

得到:/api/v1/me/patients/{id}

得到:/api/v1/me/patients/{patient_id}/public_number

这就是模型中的内容:

0 投票
1 回答
144 浏览

ember.js - 如何在 Ember 2 中访问路由模型

我在访问模板中的路线模型时遇到了一些问题。我的模型作为我的家庭控制器中定义的操作的一部分成功创建:

模型的 uuid 已正确序列化为 URL,我的 router.js 中的 URL 如下:

我的estimate控制器还正确指定了项目依赖项:

...我在我的 routes/estimate.js 中定义模型如下:

记录this.store.findRecord('project', params.project_id)我得到的输出:

但是,当我尝试访问我的估计车把模板中的项目模型(使用{{model.project.name}})时,我什么也没得到(没有错误,没有输出)。

有人对此有任何想法吗?

0 投票
1 回答
77 浏览

ember.js - 如何从 Ember 2 组件中访问属性?

我在访问传递给我的 Ember 组件的属性时遇到了一些问题,如下所示:

我传入的items(字符串列表)可以在模板中毫无问题地访问{{line-items-table items=['asd', 'asd']}}

然而,在组件中尝试get它们只会返回未定义。有什么建议么?

0 投票
2 回答
74 浏览

ember.js - 使用 Ember 2 加载关系数据

我在使用 Ember 2.0 加载关系数据时遇到了一些问题。鉴于以下两个模型,Project 和 LineItem,我试图列出属于给定项目的所有行项目:

在我的路线中,我毫无问题地加载了一个给定的项目:

在我的组件中,然后我尝试按如下方式加载我的订单项:

从“ember”导入 Ember;

但是,当我尝试在模板中迭代我的订单项时,什么也没有发生:

没有运气使用{{#each project.line_items as |item|}}。打印的输出this.get('project').get('line_items').toArray()显示一个空列表。

但是,正如预期的那样,我的项目包含行项目:

...我的订单项:

0 投票
2 回答
317 浏览

javascript - 为 Ember 图表格式化数据。

我在应用程序中使用ember-charts来呈现来自同一模型的多个不同图表。Ember-charts 采用特定方式格式化的数据;如下代码中的对象数组。
我一直在使用computed properties将数据格式化为ember-charts喜欢的格式。
这行得通。
考虑到会有很多图表,并且格式化数据的方式非常相似,我对重复代码的数量不满意,并且想知道是否有人有更好的方法来格式化 ember-charts 的数据。
我正在使用Ember 2.4ember-cli-mirage现在来生成我的模型。

控制器:

模板:

0 投票
1 回答
2066 浏览

ember.js - 如何在 Ember 2 中聚焦特定的输入元素

我正在学习 Ember 2,并尝试编写一个简单的内联编辑器。我的问题是自动聚焦输入元素。组件的模板如下:

控制器为:

将参数autofocus="autofocus"设置isEditing为 true 时使用。但是,当锚元素可见并且用户单击链接时,焦点不会转移到新可见的输入元素。因此,我的问题是:聚焦输入元素的最佳方式是什么?在里面toggleEditor,如何通过 ID 访问输入元素以及如何使用 Ember 对其进行聚焦?

0 投票
1 回答
210 浏览

ember.js - Ember 组件操作不会冒泡到模板路由器

我有一个组件应该将动作冒泡到其模板路由器。

我将操作的名称传递给组件:

在我的组件(项目表)中,我有:

在组件模板中,我有:

最后但同样重要的是,我有我的路由器:

组件的操作被正确调用。然而,从那里开始,行动并没有冒泡。关于我可能会出错的任何想法?