您在 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()"