2015-12-02 55 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