我正在使用过滤器来评估几个字符串。如果它们都已定义,我想显示它们
string0 string1
否则,我想显示如下消息:
至少有一个字符串是空的
这里有我的过滤器
.filter('getStrsOrNoData', function () {
return function (s0, s1) {
if (s0 && s1 ) {
return s0 + ' ' + last;
} else {
return 'at least one of the strings is empty';
}
};
})
以下是我在HTML中声明它的方式,传入2个参数:
<p>{{string1 + string2 | getStrsOrNoData : string1 : string2 }}</p>
我的问题是当s0 && s1
为真时,显示的值为
string0string1 string0
我认为问题是string1 + string2
,但我不知道如何在管道的左侧说明两个变量....
答案 0 :(得分:1)
我不会这样做。相反,我会创建一个过滤器,它将一个字符串数组作为输入,而不是其他参数。如果它们全部被定义,过滤器将连接数组中的字符串,或者如果至少有一个是假的则会显示错误消息
用法示例:
{{ [string1, string2] | joinOrError }}
未经测试的代码:
.filter('joinOrError', function() {
return function(array) {
if (array.some(function(string) {
return !string
})) {
return 'at least one of the strings is empty';
}
else {
return array.join(' ');
}
};
});