我的角度应用中有一个选择:
{{editMode}}
<select ng-model="item.solCategory" class="form-input form-dropdown cols-6 margin-bottom-10"
ng-options="category as category.name for category in categories| filter:{category.available:'true',editMode:'true'} "
ng-change="changeSelection(item)"
required>
<option value="">Please select</option>
</select>
我尝试过滤类别并使用一个属性,即category.available。这是categories数组的属性。现在我想过滤掉范围变量。此变量称为editMode boolean。当我尝试上面的陈述时,我收到一个错误。我怎样才能解决这个问题?这是错误:
Error: [$parse:syntax] Syntax Error: Token '.' is unexpected, expecting [:] at column 29 of the expression [categories| filter:{category.available:'true',editMode:'true'}] starting at [.available:'true',editMode:'true'}].
答案 0 :(得分:0)
错误来自调用属性category.available 你可以这样写:
category as category.name for category in categories| filter:{available:'true'}| filter :{editMode:'true'}
答案 1 :(得分:0)
你可以使用一个功能:
<"... | filter: myFilter">
在你的控制器中:
$scope.myFilter = function(category) {
return $scope.editMode && category.available;
}
但是在你的情况下,如果你不在inputMode中,使用ngIf
来简单地阻止计算整个指令会更有效:
<select ng-if="editMode" ng-options="....">