问题标签 [ember-octane]

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 回答
371 浏览

ember.js - Glimmer.js 如何在不使用构造函数的情况下将跟踪的属性重置为初始值

在 Glimmer.js 中,不使用构造函数将被跟踪属性重置为初始值的最佳方法是什么?

注意:不能使用构造函数,因为它只在初始页面渲染时调用一次,并且在后续页面点击时不再调用。

0 投票
1 回答
45 浏览

ember.js - 即使存在于数据存储中,相关对象也不会显示

我正在学习 Ember(3.21),并且不知道为什么在从商店检索时相关项目不会显示为附加到其父模型。我在 Ember Octane 中找不到这个问题的答案,因为大多数类似的答案都是针对旧版本的,而且似乎没有人遇到这个问题。

对于上下文,我正在创建一个非常简单的待办事项列表应用程序。

查看 Ember 检查器,我的 api 正确返回,所有记录都添加到存储中: 列表获取成功

物品获取成功

我的(JSON)rails api 像这样返回数据:

todolist模型:

商品型号:

因此,我使用 TodoListsRou​​te 中的 ember 数据存储填充我的模型:

在 todo-lists.hbs 中:

在 todo-list.hbs(称为 <Todolist ...> 的自定义组件)中,每个 todo 列表标题/描述都可以正常显示。 我的问题是我无法显示列表下方的任何待办事项。这是我尝试这样做的代码:

登录this.args.todoList.todoItems到控制台会返回一个完整的类,但它似乎不包含任何实际的 todoItem 数据。

非常感谢任何帮助。

0 投票
1 回答
290 浏览

ember.js - 这是 @cached 用于自动跟踪 Ember Octane 的有效用法吗?

最近我在编写带有自动跟踪功能的 Glimmer 组件时遇到了@cachedfrom tracked-toolbox的用例。这是一个示例代码片段:

如果不使用@cached,上面的代码在渲染时会执行output3 次 getter,每个执行一次msglinkname

我也考虑过为output.

据我了解,@cached提供的是对自动跟踪系统中“全局标签”的访问,因此我可以依靠该标签来确定缓存何时需要刷新。

由于我目前从事的公司项目不支持此功能,因此我希望这种用法可以鼓励我们以后添加此类支持。

注意:我发现这@cached是方便的包装

所以基本上我需要的是@glimmer/tracking/primitives/cache.

0 投票
0 回答
21 浏览

ember-octane - 基于 ember octane 中选择的答案的基于条件的显示部分

我有一个带有多个部分的 JSON 数据,其中部分将在用户单击下一个按钮后显示。在这里我需要添加条件(例如:如果用户在第 1 部分中为问题选择“是”,在第 3 部分中我们将添加条件作为条件将有问题和值如果值为是并且对于相同的问题现在选择所有字段并单击下一个用户需要跳过第2节并向他显示第3节)。由于我对 ember octane 非常陌生,因此遇到了这个特殊问题

0 投票
2 回答
629 浏览

ember.js - 如何在 Ember Octane 中更新嵌套状态

所以我的情况如下:我有一个包含几个输入字段的组件,这些字段代表一个联系人并填充了来自服务的数据:

每个字段代表一个可以通过以下方式访问的属性

我将属性保存为 JS 对象,以便在使用它们时轻松过滤掉空字段,并@tracked像这样跟踪它:

但是,属性不会在组件中正确重新呈现,并且文本字段不会更新。

我将不胜感激任何帮助!谢谢!

0 投票
1 回答
170 浏览

javascript - Ember Octane (3.22+) 为什么使用 {{on 'click' this.function}} 而不是 onclick={{this.function}}

因此,在 Ember Octane 中,有两种方法可以将函数附加到hbs文件中的事件。

EmberJS 方式:{{on 'click' this.function}}

经典的 HTML 方式:onclick={{this.function}}

在这里,他们建议使用先前的语法

但是,除非我们有正当理由这样做,否则我看不出为什么要使用该语法。

我会使用前者而不是后者的原因是什么?

0 投票
1 回答
160 浏览

ember.js - 将数据传递给 Ember Octane 组件时不需要的双向数据绑定

我正在关注Embercasts上的 Full Stack Ember with Rails 课程。由于他们还没有使用 Octane,我在必要时更改了代码以使用 Ember 3.22。我被困在视频 22 中,我需要将数据传递给组件。这个数据应该只传递给组件,但是当更新其中的一个值时,我不想看到其他地方的变化。

在视频中,这是在处理程序中didReceiveAttrs()处理的,但这在 Octane 中不可用。相反,Ember 文档将一种数据流描述为自动发生的方式。就我而言,它不会:

h3每当我更改组件输入之一中的值时都会更新。这里有什么问题?

0 投票
1 回答
376 浏览

javascript - 从 ember 组件类中获取 ember 组件的属性

我一直在尝试从其类的操作中获取组件属性的值。我的主要目标是关联两个对象:传递给我的组件的“拍卖”(如下代码所示)

新的.hbs

在“AuctionForm”组件内的选择标签上选择产品,如下所示:

拍卖形式.hbs

我想在类的“selectProduct”动作上绑定这两个对象:

拍卖-form.js

虽然,每当我尝试通过“this.get()”函数访问它在组件类上的值时(就像我以前在以前的 ember 版本上所做的那样),我收到一条错误消息,指出“this.get 不是函数” .

在网上挖掘了很多之后,我找不到一个简单的解决方案,也没有文档提供的官方解决方案。

我最接近解决方案的是将“拍卖”声明为计算属性(https://api.emberjs.com/ember/3.22/classes/Component)。但是,一旦它的结构(如下面的代码)仅适用于 TypeScript 文件,我就无法在 javascript 文件上实现它。

有谁知道在 ember 3.22 中执行此类任务的正确方法?

非常感谢你。

0 投票
1 回答
464 浏览

javascript - 如何在子组件 ember octane 中监听父组件值的变化?

这是我的代码

我想观察我的孩子组件中的 this.args.changes。我怎样才能以 ember-octane 的方式做到这一点?

0 投票
1 回答
35 浏览

javascript - Ember-Octane:更新时无法在模板中观察到 Obj?

你们中的大多数人认为这是一个奇怪的问题。我也是...

所以,这是我拥有的一个控制器文件

虽然我更新了计数,但它从未反映在模板中。我在这个地方犯了什么错误?