你在ngStyle指令內的表達式被搞亂了。正確的一個可能是:
ng-style="{'background-image': vm.currentUser.sex == 'FEMALE' ? 'url(../../../assets/img/female_default.png)' : 'url(../../../assets/img/male_default.png)'}"
如果它是很難讀,你可以將它分成幾行:
ng-style="{
'background-image': vm.currentUser.sex == 'FEMALE'
? 'url(../../../assets/img/female_default.png)'
: 'url(../../../assets/img/male_default.png)'
}"
或移動字符串連接內部條件的一部分:
ng-style="{'background-image': 'url(../../../assets/img/' + (vm.currentUser.sex == 'FEMALE' ? 'female' : 'male') + '_default.png)'}"
甚至
ng-style="{'background-image': 'url(../../../assets/img/' + vm.currentUser.sex.toLowerCase() +'_default.png)'}"
但是 ...您應該避免使用ngStyles指令來處理這種情況。我會爲男性和女性提供兩個CSS類。這是方式更靈活:
.female {
backgroind-image: url(../../../assets/img/female_default.png);
}
.male {
backgroind-image: url(../../../assets/img/male_default.png);
}
,並使用ngClass指令:
ng-class="vm.currentUser.sex.toLowerCase()"