有没有办法在EmberJS中将数组传递给currentWhen?

Jar*_*lor 7 ember.js

我正在尝试使链接在多个路由上保持"活动",例如/#/ users和/#/ user.

有任何想法吗?

And*_*eou 5

您可以重新打开Ember的LinkView并执行类似的操作(允许currentWhen包含空格分隔值)

Ember.LinkView.reopen({
    active: function() {
        // we allow link-to's currentWhen to specify multiple routes
        // so we need to check each one of them
        var loadedParams = Ember.get(this, 'loadedParams');
        var currentWhen = this['current-when'] || this.currentWhen;
        currentWhen = currentWhen || (loadedParams && loadedParams.targetRouteName);

        if (currentWhen && currentWhen.indexOf(' ') >= 0) {
                var currents = currentWhen.split(' ');
                router = Ember.get(this, 'router');

            for (var i = 0; i < currents.length; i++) {
                var isActive = router.isActive.apply(router, [currents[i]]);
                if (isActive)
                    return isActive;
            }

            return false;
        }

        return this._super();
    }.property('resolvedParams', 'routerArgs')
});
Run Code Online (Sandbox Code Playgroud)


Gau*_*rav -1

这完全是一个 hack,但它可以在 Ember 1.0.0 中运行。要在用户路由处于活动状态时使指向用户的链接保持活动状态:

App.UserRoute = Ember.Route.extend({

    activate: function() {
        setTimeout(function() {
            $('[href="#/users"]').addClass("active");
        }, 0);
    }
});
Run Code Online (Sandbox Code Playgroud)