我尝试过以下内容(在指令加载的模板中):
<li ng-repeat="lang in languages | filter: { Culture: '!{{currentLanguage}}'}">
这不起作用,所有语言都呈现
<li ng-repeat="lang in languages | filter: { Culture: !currentLanguage}">
这不起作用,没有语言呈现
语言有“文化”属性。 currentLanguage
(在范围内)解析为'en-CA'(当我在Chrome开发工具中查看元素时,我可以看到此限制)。我希望返回除'en-CA'之外的所有语言。这可能不创建自定义过滤器吗?
答案 0 :(得分:1)
AngularJS过滤器接受表达式,而您提供内插值
在HTML模板绑定中
{{ filter_expression | filter : expression : comparator}}
尝试更改为以下内容...
<li ng-repeat="lang in languages | filter: { Culture: !currentLanguage }">
有关详细信息,请参阅AngularJS filter docs
如果您需要一些自定义代码来解决此问题,那么更复杂的解决方案可能包括......
<li ng-repeat="lang in languages | filter: languageFilter">{{ lang.name }}</li>
$scope.languages = [{'name': 'en-US'}, {'name': 'en-CA'}]
$scope.currentLanguage = 'en-CA';
$scope.languageFilter = function(language) {
return language.name != $scope.currentLanguage; // en-US
}
JSFiddle Link - 工作示例
答案 1 :(得分:0)
<li ng-repeat="lang in languages | filter:{ Culture: '!en-CA'}" >
或
<li ng-repeat="lang in languages | filter:{ Culture: !currentLanguage}" >