ember.js - 不需要满足 Controller

标签 ember.js

我有以下路线设置:

this.resource('password_reset', { path: '/password_reset' }, function() {
    this.route("request");  // request a password reset
    this.route("sent");     // instruct user that email has been sent
    this.route("claim");    // receive nonce link from email to claim the reset
});

当用户请求重置时,他们会被要求输入用户名或电子邮件地址以表明身份:

request

当用户按下“请求重置”按钮时,我们会转到“password_reset.sent”路由,用户会收到关于已发送电子邮件的指示。

enter image description here

作为一个方便的功能,他们有一个可以重新发送电子邮件的按钮。为了实现这一点,我需要 password_reset.request 路由的 Controller 中的 username 属性。我想我会使用“需要”属性来让它工作:

App.PasswordResetSentController = Ember.ObjectController.extend({
    needs:'password_reset.request',
    usernameBinding: "controllers.password_reset.request.username",
    username: null,

现在我没有从中得到任何错误,但它似乎也不起作用。调试器显示 PasswordResetSentController 的状态为:

debug info

这里有很多我不明白的地方。离我最近和最亲近的当然是 username,它保持在 null 的初始化状态。除此之外,为什么两个 App.PasswordResetSentController 分组框中的所有属性都被划掉了?另外,为什么有两个这样的框都用于 App.PasswordResetSentController

我查看了“controllers”和“usernameBinding”属性,希望我能找到解决方法,但它们并没有帮助我阐明它。对于那些 Ember 火焰燃烧得更亮的人,这里是绑定(bind)对象:

enter image description here

最佳答案

问题仅在于绑定(bind)。

将您的 PasswordResetSentController 更改为

App.PasswordResetSentController = Ember.ObjectController.extend({
    needs:'password_reset.request',
    username: Ember.computed.alias("controllers.password_reset.request.username"),
});

绑定(bind)中存在问题,建议使用计算属性代替绑定(bind),这在 issue 中进行了讨论

关于ember.js - 不需要满足 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18549251/

相关文章:

javascript - Ember CLI : Uncaught SyntaxError: Duplicate data property in object literal not allowed in strict mode

javascript - Ember js 2.0 将计算属性从 Controller 传递到组件

javascript - 如何处理 REST 中的非典型操作?

javascript - this.content 未使用模板中的值进行更新

ember.js - emberjs : What does the . ..arguments in this._super(...arguments) 表示什么?

javascript - Ember集成测试,如何使用wait构建自定义Helper?

javascript - 在触摸设备上拖动时停止滚动

javascript - 如何在 Ember 第一次完成加载时运行函数

ember.js - 在 EmberJS 中获取父路由

ember.js - Ember 事件,用于最佳丢弃同一 Route 之间的更改