我正在查看一个Ember应用程序的应用模板,它使用条件检查来确定显示哪些链接。
{{#if isAuthenticated}}
link
{{else}}
link...
{{/if}}
根据用户是否注册/登录,isAuthenticated
属性会有条件地设置
App.AuthController = Ember.ObjectController.extend({
currentUser: null,
isAuthenticated: Em.computed.notEmpty("currentUser.email"),
login: function(route) {
var me;
me = this;
return $.ajax({
url: "/users/sign_in.json",
type: "POST",
data: {
"user[email]": route.currentModel.email,
"user[password]": route.currentModel.password
},
success: function(data) {
me.set('currentUser', data.user);
return route.transitionTo('user', data.user);
该应用程序可以顺利处理注册和登录,但是应用程序模板始终显示未经过身份验证的用户链接。根据此处所见的代码,是否存在某些原因导致 isAuthenticated 在登录后没有更新?
application
模板,但是你的控制器名为App.AuthController
。因此,你的模板没有连接到你的控制器。相反,你的应用程序模板正在向ApplicationController实例请求isAuthenticated。而这个属性不存在,因此返回false。 - mavileinneeds:["auth"]
。然后,您可以通过controllers.auth.isAuthenticated
访问它。 - chopper