您可以通過多種方式來實現。
HTML
<label for="name" ng-class="labelClass()" class="xs-keep-label-in-place">Display Name</label>
JS
$scope.labelClass = function(){
var classes = [];
if($scope.userProfile.name === null){
classes.push('custom-label-no-content');
}else{
classes.push('custom-label-content');
}
return classes;
}
2.單個大括號表達式
HTML與硬編碼類
<label for="name" ng-class="{ 'custom-label-no-content': userProfile.name === null, 'custom-label-content': userProfile.name !== null }" class="xs-keep-label-in-place">Display Name</label>
3. switch語句
HTML
<div class="col-md-12" ng-switch="userProfile.name === null">
<input type="text" name="name" id="name" class="input-border" ng-model="userProfile.name"/> {{userProfile.name}}
<label for="name" ng-switch-when="true" class="custom-label-no-content xs-keep-label-in-place">Display Name</label>
<label for="name" ng-switch-when="false" class="custom-label-content xs-keep-label-in-place">Display Name</label>
</div>
就個人而言,我會因爲它符合MVC模式,你的「邏輯推薦選擇1 「應保留在您的控制器中,而您的」查看「代碼仍然純粹用於顯示。
'納克級=「{ '自定義標籤沒有內容':userProfile.name ===空, '自定義標籤內容':userProfile.name = = null}「' – haxxxton
@haxxxton你真快。我即將回答這個問題。 Wkwkwk。 –
@haxxxton它不工作,也許是因爲在ng模型中發生的變化沒有綁定在ng-class中。 – hasi