2015-12-02 52 views
0

我們有標籤工作正常使用該HTMLAngularJS納克級的和無效的標籤 - 功能被打破

<div class="col-lg-3 col-md-3 panel-container"> 
 
    <ul class="nav nav-pills nav-stacked"> 
 
     <li class="active"><a data-toggle="pill" href="#general" ng-class="{true: 'invalid-tab', false: ''}[form.editTemplateGeneralForm.$invalid]">@Labels.general</a></li> 
 
     <li><a data-toggle="pill" href="#startingValues" ng-class="{true: 'invalid-tab', false: ''}[form.editTemplateStartingValuesForm.$invalid]">@Labels.startingValues</a></li> 
 
    </ul> 
 
</div>

用於正常工作無效的標籤,當標籤是無效的它顯示爲紅色。現在它不再有用了,我們懷疑它是最新版本的AngularJS打破了這種功能。我們使用v1.3.13。

你知道應該在上面的語法中調整什麼,以使它再次工作(這是在我們的應用程序的許多頁面中使用)。

這是從我們的site.css無效標籤:

.widget .invalid-tab * { 
 
    background-color: #F9EAF3; 
 
    /*color: #F9EAF3;*/ 
 
    color: #d43f3a; 
 
} 
 

 
    .widget .invalid-tab:hover * { 
 
     background-color: #E06B6C; 
 
     color: #ffffff; 
 
    }

+1

好像你只是想設置類,如果表單字段是無效的權利無效的標籤?更簡單的版本如下:'ng-class =「{'invalid-tab':form.editTemplateGeneralForm。$ invalid}」'[用語法修復編輯] –

+0

請試試看,謝謝。 – Naomi

+0

雖然這是一個較短的語法,但問題仍然存在。無效標籤沒有顯示爲紅色:( – Naomi

回答

1

正確的方法來定義納克級如下:ng-class="{classname: expresstion}"

您還需要從css選擇器中刪除星號 - 因爲您正在選擇任何子元素。但.invalid-tab沒有子元素。

另一種解決方案是從移動.invalid-tab類父li-element

angular.module('myApp', []) 
 
    .directive('testApp', function(){ 
 
    return { 
 
     link: function(scope) { 
 
     scope.form = { 
 
      editTemplateStartingValuesForm: {$invalid: true}, 
 
      editTemplateGeneralForm: {$invalid: false} 
 
     }; 
 
     } 
 
    }; 
 
    });
.widget .invalid-tab { 
 
    background-color: #F9EAF3; 
 
    /*color: #F9EAF3;*/ 
 
    color: #d43f3a; 
 
} 
 

 
.widget .invalid-tab:hover { 
 
    background-color: #E06B6C; 
 
    color: #ffffff; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.js"></script> 
 
<div ng-app="myApp" class="widget" test-app> 
 
    <div class="col-lg-3 col-md-3 panel-container"> 
 
    <ul class="nav nav-pills nav-stacked"> 
 
     <li class="active"> 
 
     <a data-toggle="pill" href="#general" ng-class="{'invalid-tab': form.editTemplateGeneralForm.$invalid}">@Labels.general</a> 
 
     </li> 
 
     <li> 
 
     <a data-toggle="pill" href="#startingValues" ng-class="{'invalid-tab': form.editTemplateStartingValuesForm.$invalid}">@Labels.startingValues</a> 
 
     </li> 
 
    </ul> 
 
    </div> 
 
</div>

+0

是的,我已經切換到該格式,但由於不明原因它仍然沒有工作,我看到類應用,當我檢查元素,但它沒有顯示爲紅色 – Naomi

+0

invalid-tab不是正常的引導類afaik的一部分,所以好像你的CSS有什麼問題。在我的代碼片段中手動添加.invalid-tab - 即使我導入了引導程序。 – Etse

+0

您能否將其編輯爲原始問題 - 讀起來更容易 – Etse