链路在子路径中设置为活动状态

时间:2014-10-14 14:55:46

标签: javascript ember.js

我注意到当我在路线forums.archives时,我使用{{#link-to 'forums'}}Forums{{/link-to}}定义的链接设置为活动类。

Router.map(function () {
    this.route('forums', function () {
        this.route('new');
        this.route('archives');
    });
});

导航:

{{#link-to 'forums'}}Forums{{/link-to}}
{{#link-to 'forums.archives'}}Forum archives{{/link-to}}

他们都得到了活跃的课程。

如果链接上的活动类与网址100%不匹配,是否可以删除活动类?

由于

1 个答案:

答案 0 :(得分:0)

所以你有一个嵌套的route,说实话,我不知道它是如何工作的。来自Ember团队的一句话就是它与嵌套资源的工作原理相同,但是有很多细微之处(比如这个)并没有多大意义。所以这就是我要做的事情(可能不是你应该做什么)。假设您的导航位于application模板中:

App.ApplicationController = Ember.ObjectController.extend({
    isForumsActive: function() {
        return (this.get('currentRouteName') === 'forums');
    }.property('currentRouteName')
});

然后,在您的模板中:

{{#link-to 'forums' active=isForumsActive}}Forums{{/link-to}}
{{#link-to 'forums.archives'}}Forum archives{{/link-to}}

您可能还想更改路线的方式,以便嵌套更清洁:

Router.map(function () {
    this.resource('forums', function () {
        // this.route('index'); -- implicitly defined
        this.route('new');
        this.route('archives');
    });
});

然后,您的link-to可能会指向forums.index