您可以向 status
添加过滤器,将表示相同含义的值映射为相同的值。
.filter('meaning', function() {
return function(input) {
input = input || '';
if (['wrong', 'amiss','awry', 'bad', 'erroneous', 'false', 'inaccurate',\
'misguided', 'mistaken', 'unsound', 'incorrect'].indexOf(input) != -1)
return 'wrong';
synonymsDictionary = {
'someWord' : ['syn1', 'syn2', 'syn3' ... ],
'someOtherWord' : ['otherWordSyn1', 'otherWordSyn2', 'otherWordSyn3' ...]
.
.
.
};
for (var word in synonymsDictionary)
if (synonymsDictionary[word].indexOf(input) != -1)
return word;
else return input;
};
})
那么你只需要
<p ng-switch="status|meaning">
<span ng-switch-when="wrong">
Wrong
</span>
<span ng-switch-default>
Correct
</span>
</p>
尽管在你的情况下,你可能只是想打印一条消息,因此你可以从字典中提取消息......
类似于:
<span ng-if="status">
{{getStatusMessage(status)}}
</span>
status
包含值wrong
或incorrect
,我想显示文本wrong
。对于所有其他值,它应该显示文本Correct
。 - Jeanluca Scaljeri