在当前范围内通过 属性 过滤 ng-repeat
Filter ng-repeat by a property in the current scope
我尝试了以下方法(在由指令加载的模板中):
<li ng-repeat="lang in languages | filter: { Culture: '!{{currentLanguage}}'}">
这不起作用,所有语言都呈现
<li ng-repeat="lang in languages | filter: { Culture: !currentLanguage}">
这不起作用,没有呈现任何语言
语言有 属性 'Culture'。 currentLanguage
(在范围内)解析为 'en-CA'(当我在 Chrome 开发工具中查看元素时,我可以看到这个绑定)。我希望返回除 'en-CA' 之外的所有语言。如果不创建自定义过滤器,这可能吗?
<li ng-repeat="lang in languages | filter:{ Culture: '!en-CA'}" >
或
<li ng-repeat="lang in languages | filter:{ Culture: !currentLanguage}" >
AngularJS 过滤器接受一个表达式,而您提供的是一个内插值
In HTML Template Binding
{{ 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 - 工作示例
我尝试了以下方法(在由指令加载的模板中):
<li ng-repeat="lang in languages | filter: { Culture: '!{{currentLanguage}}'}">
这不起作用,所有语言都呈现
<li ng-repeat="lang in languages | filter: { Culture: !currentLanguage}">
这不起作用,没有呈现任何语言
语言有 属性 'Culture'。 currentLanguage
(在范围内)解析为 'en-CA'(当我在 Chrome 开发工具中查看元素时,我可以看到这个绑定)。我希望返回除 'en-CA' 之外的所有语言。如果不创建自定义过滤器,这可能吗?
<li ng-repeat="lang in languages | filter:{ Culture: '!en-CA'}" >
或
<li ng-repeat="lang in languages | filter:{ Culture: !currentLanguage}" >
AngularJS 过滤器接受一个表达式,而您提供的是一个内插值
In HTML Template Binding
{{ 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 - 工作示例