我正在尝试使用filter
在我的选择中获取非空白元素,但这不能正常工作。
<select ng-model="selectedSubject.id">
<option value="0">
<%= res.getString("portlet.form.subjectField.default") %>
</option>
<option ng-repeat="sujet in subjects.allSubjects | filter:{name_fr:'!!'}" value="{{sujet.id}}">
{{sujet.name_fr}}
</option>
</select>
答案 0 :(得分:5)
filter:{my_field:'!!'}
只过滤掉null
个值。
如果您要过滤掉空值,或同时过滤null
和空,您应该使用自定义过滤器
<option ng-repeat="sujet in subjects.allSubjects | filter:notEmptyOrNull" value="{{sujet.id}}">{{sujet.name_fr}}</option>
控制器
$scope.notEmptyOrNull = function(item){
return !(item.name_fr === null || item.name_fr.trim().length === 0)
}
答案 1 :(得分:1)
您使用的过滤器只会过滤包含空值而非空白的数据。
要过滤掉空白数据,您必须创建过滤器。此问题已在堆栈溢出时得到解答。访问此链接。
答案 2 :(得分:0)
您必须设置模型,以便angular选择基于select ngModel
的正确选项<select ng-model="selectedSubject.id" ng-options="sujet.id as sujet.name_fr in subjects.allSubjects track by sujet.id"></select>
并在控制器上设置默认ID。
$scope.allSubjects = subjects;
$scope.selectedSubject.id = subjects[0].id;