Javascript 制作<;李>;元素';主动';而不是<;a>;要素

Javascript 制作<;李>;元素';主动';而不是<;a>;要素,javascript,twitter-bootstrap,ember.js,handlebars.js,Javascript,Twitter Bootstrap,Ember.js,Handlebars.js,我使用Bootstrap和Ember.js得到了一个无序列表。每个列表项都是一个显示新帖子的链接,无论何时单击该链接,默认情况下,Ember都会添加类活动的。我正在使用引导导航药片,当类处于活动状态时,它会变成蓝色。但是,Ember使链接处于活动状态,而我希望它使整个处于活动状态 这是我的模板: <ul class="nav nav-pills nav-stacked"> {{#each post in controller}} <li class="l

我使用Bootstrap和Ember.js得到了一个无序列表。每个列表项都是一个显示新帖子的链接,无论何时单击该链接,默认情况下,Ember都会添加类
活动的
。我正在使用引导
导航药片
,当类处于
活动状态时,它会变成蓝色。但是,Ember使链接
处于活动状态
,而我希望它使整个
  • 处于活动状态

    这是我的模板:

    <ul class="nav nav-pills nav-stacked">
        {{#each post in controller}}
            <li class="list-group-item">
                {{#link-to 'post' post}}
                    {{post.title}}
                {{/link-to}}
            </li>
        {{/each}}
    </ul>
    
      {{{#控制器中的每个职位}
    • {{{#链接到'post'post} {{post.title} {{/链接到}
    • {{/每个}}
    单击链接时,
  • 如下所示:

    <li class="list-group-item">
        <a id="ember360" class="ember-view active" href="#/posts/1">
            A great post
        </a>
    </li>
    
        selection: Ember.computed.alias("parentController.selection"),
        isActive: Ember.computed.equal("model", "parentController.selection")
    

  • 我知道用jQuery添加此功能相当简单,但是有没有办法使
  • 激活,而不是直接使用余烬或把手的
    ?我试着把
    {{link to}}
    放在
  • 的周围,但没有效果。

    我不认为有任何超简单的方法,我认为最好的方法是扩展LinkView,注册一个新的助手,链接到bootstrap,或者沿着这些线将类添加到li元素而不是锚元素


    有一个非常好的项目已经做到了这一点

    没有内置的方法。活动类绑定代码是要链接到的内部代码,它涉及几个不容易抽象的部分

    最好的解决方案是让路由在postsController中设置选定的帖子。这看起来像:

        setupController: function(controller, model) {
          controller.set('model', model);
          this.controllerFor('posts').set('selection', model);
        },
    
    然后,您希望打开POST的项目控制器(PostController,除非您在PostsController上将itemController设置为其他内容),并执行以下操作:

    <li class="list-group-item">
        <a id="ember360" class="ember-view active" href="#/posts/1">
            A great post
        </a>
    </li>
    
        selection: Ember.computed.alias("parentController.selection"),
        isActive: Ember.computed.equal("model", "parentController.selection")
    
    然后在你的li中:

        <li {{bind-attr class="isActive:active :list-group-item"}}>
    
    
    
    您可以使用
    tagName=“li”
    选项将指向生成标记的
    链接更改为
  • 。并保留
    
    {{/链接到}
    {{/每个}}
    
    

    在实际操作中看到这一点

    使用parent.addClass()太棒了!简单有效。我删除了“列表组项目”类,因为它看起来更好,但解决方案工作得非常好。很高兴能提供帮助!我保留列表组item类,因为你的初始代码也有它。是的,我意识到了。这比在计算属性上乱搞要容易得多。简单的想法-->这会降低链接的
    在新选项卡中打开
    的使用。有趣的是,我从来没有想过尝试只设置标记名,我会记住这一点。通常,随着应用程序的增长,主/详细列表中的所选对象的引用将不仅仅用于突出显示导航,因此请记住我的管理选择的技术。有趣的项目。您是否将此用于您的项目?我很好奇它的工作有多可靠。
    setupController
    是否意味着要成为我的postsRoute中的一种方法?