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