繁体   English   中英

灰烬添加检查过渡调用上下文(路由/控制器)

[英]Ember adding check for transition call context (route/controller)

在我的Ember应用程序中,我有一个通用的mixin /代码,其中包含一个过渡调用

myCommonFn: function() {
//this.transition('someRoute') // Works if context is route
//this.transitionTo('someRoute') // Works if context is controller
}

现在,由于此功能在多条路由中通用,因此可以从控制器或路由中触发

我的问题是我如何确保这两种情况都有效? 意思是我应该使用添加支票

this.constuctor() //Check if it is controller or route

还是我应该做一个空/未定义的检查

this.transition() OR this.transitionToRoute()

使它在所有情况下都能正常工作的最佳方法是什么?

如果您的mixin应用到任何地方,最简单的方法就是检查并启动。 此外,如果您有升级计划,则最终控制器将消失,因此这可能只是临时修复。

var transition = this.transitionTo || this.transitionToRoute;

transition.apply(this, [arg1, arg2,.....]);;

您还可以再扩展两次普通混合,并具有基本版本,控制器版本和路由版本,您可以在其中指定特定于路由/控制器的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM