家伙!我对AngularJS中的一些过滤文本有疑问。我想选择从数组返回的过滤文本,我的意思是搜索后显示的文本。现在如果我选择所有项目,使用复选框选择所有项目。我已经尝试过这种方式,但是它给了我一个错误,即searchText是未定义的。有没有人知道如何解决这个问题?
这是我的HTML:
<div class="modal-body">
<div>
<md-input-container flex> <label>Search</label>
<input ng-model="searchText.name"> </md-input-container>
<md-checkbox ng-model="modelItemsList.allItemsSelected"
ng-click="selectAll()">
Select all
</md-checkbox>
</div>
<!-- /.modal-search-box -->
<div class="md-list">
<md-list> <md-list-item class="md-3-line"
ng-repeat="modelItem in modelItemsList | filter:searchText">
<div class="md-list-item-text">
<md-checkbox ng-model="modelItem.isChecked " aria-label="Checkbox 1" ng-change="selectModelItem(modelItem)">
<h3>{{ $eval('modelItem.'+propertyName) }}</h3>
<p>{{ $eval('modelItem.'+propertyDesc) }}</p>
</md-checkbox>
</div>
</md-list-item> </md-list>
<md-button class="md-primary" ng-click="saveValues()" >Save</md-button>
</div>
<!-- /.modal-items-list -->
</div>
这是我在AngularJS中的select all函数
$scope.selectAll = function(){
console.debug("searchText", $scope.searchText);
filteredArray = filterFilter($rootScope.modelItemsList, $scope.searchText);
$rootScope.modelItemsList.allItemsSelected = !$rootScope.modelItemsList.allItemsSelected;
if($rootScope.modelItemsList.allItemsSelected){
for (var i = 0; i < $scope.modelItemsList.length; i++) {
$rootScope.temp.push($scope.modelItemsList[i].name);
$scope.modelItemsList[i].isChecked = $rootScope.modelItemsList.allItemsSelected;
}
}
else if (!$rootScope.modelItemsList.allItemsSelected){
for (var i = 0; i < $scope.modelItemsList.length; i++) {
$scope.modelItemsList[i].isChecked = $rootScope.modelItemsList.allItemsSelected;
$rootScope.temp = [];
}
}
}
当我控制台登录我的searchText时,我得到了这个:
searchText undefined
我不知道为什么。有人能帮我吗?在此先感谢!!