问题标签 [ember-controllers]

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

ember.js - 我什么时候应该在 EmberJS 中使用控制器和路由?

我知道这个问题可能看起来有点重复,但是这个问题的其他版本已经过时了,并且某些内容(例如视图)甚至不再是 ember 的一部分。

作为一名使用 EmberJS 的前端开发人员,我实习大约 4 周。我仍然不明白什么时候最好在控制器上使用路由,反之亦然。在我看来,路由中的每个动作也可以在控制器中使用。

我最近听到的一件事是 ember 路由应该是无状态的,而控制器应该是有状态的。

控制器和路由的当前状态是什么。什么时候应该使用一个而不是另一个?

0 投票
1 回答
736 浏览

javascript - ember js,用户访问页面时不断调用控制器中的init方法

我在 ember 中有一个控制器脚本,并且 iam 在控制器中使用 init() 方法。这是我的脚本

当用户第一次打开页面时调用 init 方法。但是当用户打开另一个页面并返回此页面时,控制器不会调用 init() 方法。当用户访问此页面时,如何强制控制器运行 init 方法。我避免使用组件,因为它很难重构:(

0 投票
1 回答
604 浏览

javascript - 如何从 ember 中输入助手的事件中获取 event.target

iam 在 ember 中使用输入助手来绑定属性值

我只想将一个事件对象从 key-press = onKeyPressShowPanel 传递给控制器​​,这样我就可以使用 event.target 通过 jquery snipet 操作一些元素。这是我在控制器中的 onKeyPressShowPanel 操作

不幸的是,我通过的事件是一个来自 value = alamat 的值。如何从输入助手上的事件中获取 event.target,以便我可以使用 jquery 操作某些元素。任何答案都会对我有所帮助..谢谢:)

0 投票
1 回答
1192 浏览

javascript - Ember _ 如何从组件控制器访问控制器操作

我正在尝试向 ember 组件添加一些外部功能。该组件如下:

应用程序/模板/programmers.hbs

我正在使用参数'fnActionButtonClicked'。此参数表示它执行的函数,它不在组件的功能范围内(例如将 javascript 函数作为参数传递)。我是新手,我不知道确切的 ember 方法。组件的模板是:

应用程序/模板/组件/echo-hlabel-tf.hbs

如您所见,在模板的底部,有一个 input type="button" 与 "actionButtonClicked" 绑定。组件的控制器是:

应用程序/组件/echo-hlabel-tf.js

因此,模板“fnActionButtonClicked”(SayHello)的参数将通过var action = this.get('fnActionButtonClicked');在actionButtonClicked()中检索到。.

所以,在这一点上,疑问来了。由于我不能将 javascript 函数作为模板的参数传递(或者至少,我认为这不是正确的做法),我创建了一个控制器“sampleController”来创建操作“sayHello”(参见参数fnActionButtonClicked 值),代码如下:

应用程序/控制器/sample-controller.js

从“ember”导入 Ember;

});

我怎样才能从app/components/echo-hlabel-tf.js:actionButtonClicked()执行app/controllers/sample-controller.js 的代码:sayHello()?如何从组件控制器访问另一个控制器?这是实现我目标的正确方法吗?

提前致谢

0 投票
2 回答
1147 浏览

javascript - ember 必须从组件错误中调用超级方法

我只是用我的自定义 mixins 类扩展了我的 ember 组件,但不幸的是我的日志说一个错误

但在我的组件(post-item)中,我被声明为我的 init 方法

这是我的基本控制器类

但是当我尝试this._super(...arguments);在我的基本控制器中取消注释此语法时。错误消失了...

任何人都可以解决这个问题:( ...

0 投票
1 回答
289 浏览

ember.js - emberjs中是否有可能filterBy没有值?

在我的控制器中,我有一个过滤数组,例如

是否有可能过滤后的帖子根本不过滤任何东西。我需要这个以防用户不想应用过滤器而只想查看所有帖子。

0 投票
1 回答
36 浏览

javascript - ember 计算未更新

我在 ember 中有一个计算属性

当用户调用操作时,必须更新计算的属性。

当 , 中的语句在 else中时,isCurrentUserLikeIt属性会更新。this.doSave但是当声明在if (result.userlike)属性isCurrentUserLikeIt中时没有改变:(

谁能解决这个问题

0 投票
1 回答
1441 浏览

javascript - 如何将控制器数据传递到组件并在 ember js 中备份

我有一个 ember 2.13 应用程序,它有一个用户路由获取用户模型。因此,在用户模板中,我显示了所有获取的用户。我还有一个用户控制器,当用户被点击时,它会向编辑表单提供数据。我正在使用用户控制器来执行此操作。

所有代码都在一个模板中,但我想将呈现用户列表和编辑用户表单放在两个单独的组件中。假设我制作了一个渲染单用户和编辑用户模板。因此,当用户点击使用 render-single-user 组件渲染的用户时,该用户的数据应该显示在 edit-user 组件渲染的 dom 中。

问题是组件无权访问路由的模型或应用程序的商店。

如果有人能告诉我如何将模型和存储从控制器传递到组件以及渲染单用户和编辑用户组件之间,我将不胜感激。当用户点击更新/保存时,修改后的数据应该传送到控制器并将记录保存到存储中,从而向服务器发出发布请求。

附上截图。

用户视图

在此处输入图像描述

点击的用户

在此处输入图像描述

0 投票
2 回答
53 浏览

ember.js - 控制器内部的 Ember 调用方法

这是我的代码我必须在我尝试过的 Ember 控制器中调用另一个方法,但这不起作用我对此感到困惑......

请帮我看看这段代码有什么问题?

0 投票
2 回答
62 浏览

javascript - 替换 Ember.ArrayController.create() 将不会解析 belongsTo 关系 | 余烬升级 3.x

我正在升级,我遇到了一些问题,因为 ArrayController 已被弃用。

在我使用的旧 Ember 1.13 路线中

模型/公告.js

序列化器/announcement.js

路线/公告.js

在路由公告的控制器中,如下:

控制器/announcement.js

所以在模板中我为每个循环运行一个来呈现所有公告,比如

模板/公告.hbs

在 ember 升级 3.5 之后,我将这些更改为以下内容:

模型/公告.js

// 从配置文件中删除 async true

序列化器/announcement.js

路线/公告.js

控制器/announcement.js

sortProperties: ['publishedAt:desc'], sortedModel: computed.sort('model', 'sortProperties'),

模板/公告.hbs

然后announcement.author.firstname在 ember 3.5 中未定义,但如果它不是 belongsTo 关系,它将存在(示例announcement.publishedAt

我不知道我错过了什么或我在这里做错了什么。

我在此处附上了我在控制器发布变量中所做的控制台日志的屏幕截图。

余烬 1.13

在此处输入图像描述

余烬 3.5 在此处输入图像描述

你的回答让我更好地理解了这个问题。api返回自定义版本的数据,这就是embeddedRecordsMixin使用的原因 这是课程的api有效负载