ember Route中的复杂代码

时间:2014-10-15 22:05:11

标签: ember.js

我有路线

App.MyRoute = Ember.Route.extend({
    model : function() {
        return complexCode();
    }
}

complexCode进行许多依赖于上述结果的异步链接调用。 出于这个原因,我希望complexCode被分发到几个文件中,以便于维护代码。 我遇到的问题是,当我在另一个文件的方法中时,我无法访问MyRoute。

一个选项是将对象作为参数传递,但我想避免必须通过所有方法传递对象。

App.MyRoute = Ember.Route.extend({
    model : function() {
        var route = this;
        return complexCode(route);
    }

让gloal访问MyRoute的属性或方法的最佳方法是什么? 将代码分离到其他文件中的方法是否正确?

1 个答案:

答案 0 :(得分:0)

这可能是一个糟糕的模式。它将您的complexCode紧密地耦合到路线上。你最好传递必要的值来执行复杂的代码,或创建一个mixin并将它添加到每个路由(这将允许你有方法在路由的范围内)。

http://emberjs.com/api/classes/Ember.Mixin.html