我有以下路线设置:
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
});
当用户请求重置时,他们会被要求输入用户名或电子邮件地址以表明身份:
当用户按下“请求重置”按钮时,我们会转到“password_reset.sent”路由,用户会收到关于已发送电子邮件的指示。
作为一个方便的功能,他们有一个可以重新发送电子邮件的按钮。为了实现这一点,我需要 password_reset.request
路由的 Controller 中的 username
属性。我想我会使用“需要”属性来让它工作:
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”属性,希望我能找到解决方法,但它们并没有帮助我阐明它。对于那些 Ember 火焰燃烧得更亮的人,这里是绑定(bind)对象:
最佳答案
问题仅在于绑定(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/