簡體   English   中英

從Ember視圖中刪除類名

[英]Removing Classnames from Ember view

我正在嘗試創建具有在擴展視圖中描述的功能的視圖,但是具有不同的類名。 發生的是ExpTypesView類是['nav','nav-pills'] ['nav','nav-tabs']。 我如何設置它以便它們替換在NavView中設置的類名?

Resume.NavView = Em.View.extend({
  tagName: 'ul',
  classNames: ['nav','nav-tabs'],
  currentPathDidChange: function(){
    Ember.run.next( this, function() {
      $("ul li:has(>a.active)").addClass('active');
      $("ul li:not(:has(>a.active))").removeClass('active');
   }); 
  }.observes('controller.currentPath')
});
Resume.ExpTypesView = Resume.NavView.extend({
  classNames:['nav','nav-pills']
});

Ember.ViewclassNames是一個連接的屬性,因此您添加的屬性將與超類值連接。

您可以使用classNameBindings在超類和后代中設置類型。

App.NavView = Em.View.extend({
  tagName: 'ul',
  classNames: ['nav'],
  classNameBindings: ['type'],
  type: 'nav-tabs',
  currentPathDidChange: function(){
    Ember.run.next( this, function() {
      $("ul li:has(>a.active)").addClass('active');
      $("ul li:not(:has(>a.active))").removeClass('active');
   }); 
  }.observes('controller.currentPath')
});

App.ExpTypesView = App.NavView.extend({
  type: 'nav-pills',
});

這使得類為class="ember-view nav nav-tabs"class="ember-view nav nav-pills"

JSBin示例

這個骯臟的小解決方法可以滿足我的需求,但是如果您知道更好的方法或任何能解釋這個問題的資源,請告訴我!

Resume.ExpTypesView = Resume.NavView.extend({
  //classNames:['nav','nav-pills'],
  init: function(){
    this.set('classNames', ['nav','nav-pills']);
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM