Ember.js 视图中的重定向
我正在Ember中构建一个登录表单 App.Router=Ember.Router.extend( //这里的国家) 那么我有以下的看法Ember.js 视图中的重定向,ember.js,ember-old-router,Ember.js,Ember Old Router,我正在Ember中构建一个登录表单 App.Router=Ember.Router.extend( //这里的国家) 那么我有以下的看法 App.SignInView = Ember.View.extend templateName: 'signin' submitLogin: (event) -> login = @getPath('email.value') password = @getPath('password.value') console.log "
App.SignInView = Ember.View.extend
templateName: 'signin'
submitLogin: (event) ->
login = @getPath('email.value')
password = @getPath('password.value')
console.log "Login: " + login + " Password: " + password
// how do I redirect to a different state? I.e. "loggedIn"
submitLogin通过使用{{action“submitLogin”}从模板触发
正如您从这段代码中看到的,我想在显示web应用程序的“私有”区域之前检查用户名/密码。这里的最佳实践是什么?您应该在当前路由中实现您的
submitLogin
hander,并从处理程序转换路由,这类似于:
submitLogin:(路由器,事件)->
login=event.context.email//例如
密码=event.context.password//例如
//在这里打电话吗。。。
//和来自回复处理程序:
router.transitiono('loggedIn');
您必须在操作助手中传递电子邮件和密码容器,例如:
{{action submitLogin this}
您应该在当前路由中实现您的submitLogin
句柄,并从处理程序转换路由,这类似于:
submitLogin:(路由器,事件)->
login=event.context.email//例如
密码=event.context.password//例如
//在这里打电话吗。。。
//和来自回复处理程序:
router.transitiono('loggedIn');
您必须在action helper中传递电子邮件和密码容器,例如:{{{action submitLogin this}}
此讨论引导我进行以下设计:
App.router.send('signUp',context)
App.router.send('signUp',context)
这里的关键点是,我不需要在路由器外部更改路由器的状态,而是发送上下文以由路由器的当前状态处理。因此,基本上这意味着所有事件(在此之后我更改应用程序的状态)都应该传递给路由。最初我希望由控制器来处理。事实上,我的理解是,事件处理大部分都包含在视图(而不是控制器)中,甚至我的印象是扩展Ember.View的目的是处理事件。有谁能推荐一些“最佳实践”类型的规则吗?@AndreiVaranovich控制器旨在作为数据的代理,并包含增值原语,但路由器状态应始终从内部进行修改。@pauldechov视图应如其名称所示,仅包含渲染内容,如计算属性、样式。。。等等。无论如何,我认为支持从视图/控制器调用路由器可能是一个不错的特性。显然,视图和控制器都可以“部分”处理某些逻辑,例如对某些用户事件作出反应。好吧,至少视图可以做到这一点。也许来自Emberjs团队的人对此有意见。否则,我将尝试在Github上报告此功能请求。因此,基本上这意味着,在我更改应用程序状态之后,所有事件都应传递给路由。最初我希望由控制器来处理。事实上,我的理解是,事件处理大部分都包含在视图(而不是控制器)中,甚至我的印象是扩展Ember.View的目的是处理事件。有谁能推荐一些“最佳实践”类型的规则吗?@AndreiVaranovich控制器旨在作为数据的代理,并包含增值原语,但路由器状态应始终从内部进行修改。@pauldechov视图应如其名称所示,仅包含渲染内容,如计算属性、样式。。。等等。无论如何,我认为支持从视图/控制器调用路由器可能是一个不错的特性。显然,视图和控制器都可以“部分”处理某些逻辑,例如对某些用户事件作出反应。好吧,至少视图可以做到这一点。也许来自Emberjs团队的人对此有意见。否则,我将尝试在Github上报告此功能请求。您可以使用
this.get('controller.target')
其中this
是视图,而不是引用绝对路径,您可以使用this.get('controller.target')
其中this
是视图。