AngularJS 过滤器保护了一些特殊字符。可以通过在字符串前加上 !
来否定谓词,但现在我想过滤掉包含 '!' 的项目特殊字符。我怎样才能逃脱这个特殊的字符'!'请问?
最佳答案
你无法逃避它,因为 filter
过滤器 doesn't presume it .
但是你可以使用predicate function覆盖 !
谓词的默认行为并装饰 filter
而不破坏其他任何内容。
app.config(['$provide', function ($provide) {
function bang(value) {
return value.indexOf('!') >= 0;
};
function bangless(value) {
return value.indexOf('!') < 0;
};
$provide.decorator('filterFilter', ['$delegate', function ($delegate) {
return function (array, expression, comparator) {
if (expression === '!') {
expression = bang;
} else if (expression === '!!') {
expression = bangless;
}
return $delegate(array, expression, comparator);
}
}]);
}]);
关于angularjs - 调用angularjs过滤器时如何转义 '!',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31955000/