3

我有以下路线设置:

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 reset”按钮时,我们将转换到“password_reset.sent”路由,在该路由中向用户指示已发送的电子邮件。

在此处输入图像描述

作为一项便利功能,他们有一个可以重新发送电子邮件的按钮。为了实现这一点,我需要username来自控制器的password_reset.request路由属性。我想我会使用 'need' 属性来让它工作:

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

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

调试信息

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

我查看了“controllers”和“usernameBinding”属性,希望能在其中找到自己的方法,但它们并没有帮助我了解它。对于那些灰烬火焰燃烧得更亮的人,这里是绑定对象:

在此处输入图像描述

4

1 回答 1

2

问题仅在于绑定。

将您的 PasswordResetSentController 更改为

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

绑定存在问题,建议使用计算属性代替绑定,本期对此进行了讨论

于 2013-08-31T17:30:52.953 回答