【发布时间】:2014-11-12 04:39:43
【问题描述】:
我正在尝试在控制器操作中的 Promise 处理程序中使用 _super,但它不起作用,因为它似乎丢失了正确的函数链。
ApplicationRoute = Ember.Route.extend SimpleAuth.ApplicationRouteMixin,
actions:
sessionAuthenticationSucceeded: ->
@get("session.user").then (user) =>
if @get("session.isTemporaryPassword") or not user.get "lastLogin"
@transitionTo "temp-password"
else
@_super()
我想在 else 上恢复为 Mixin 的默认行为,但我需要先异步解析 user,然后才能执行条件语句。我试过了:
ApplicationRoute = Ember.Route.extend SimpleAuth.ApplicationRouteMixin,
actions:
sessionAuthenticationSucceeded: ->
_super = @_super
@get("session.user").then (user) =>
if @get("session.isTemporaryPassword") or not user.get "lastLogin"
@transitionTo "temp-password"
else
_super()
和
ApplicationRoute = Ember.Route.extend SimpleAuth.ApplicationRouteMixin,
actions:
sessionAuthenticationSucceeded: ->
@get("session.user").then (user) =>
if @get("session.isTemporaryPassword") or not user.get "lastLogin"
@transitionTo "temp-password"
else
@_super.bind(@)()
都不行。
This answer 声称这应该从 1.5.0 开始工作,但我使用的是 1.7.0-beta.5 并且不行。有没有办法让它发挥作用,即使是在不同的处理方式方面?
【问题讨论】:
标签: ember.js coffeescript promise rsvp.js