AngularJS에서 데이터 세트를 필터링하기 위해 한 쌍의 Kendo 드롭 다운 목록을 사용하려고합니다. 하나는 정적 ObservableArray 데이터 소스를 사용하여 상태별로 데이터 세트를 필터링합니다. 다른 데이터 소스는 데이터 세트의 "regionID"열에있는 고유 한 값 집합이며 ObservableArray로도 저장됩니다. 상태 드롭 다운이 변경되면 지역 드롭 다운이 새로 필터링 된 데이터에서 지역 목록을 다시로드해야합니다. 이것은 작동하지만 선택한 값을 나타내야하는 모델에 여전히 올바른 값이 있고 데이터가 여전히 동일한 값으로 올바르게 필터링 되더라도 선택한 값이 비워집니다. 드롭 다운을 연 다음 클릭하면 해당 값이 표시됩니다.
HTML은 다음과 같습니다.
<select name="filterByRegion" style="width: 180px;" class="form-control" ng-model="selectedRegion" ng-change="onRegionFilterChange(selectedRegion)" kendo-drop-down-list k-options="regionFilterOptions"></select>
<select name="accountStatus" style="width: 180px;" class="form-control" ng-model="status" ng-change="onAccountStatusChange(status)" kendo-drop-down-list k-options="accountStatusOptions"></select>
다음은 컨트롤러의 두 가지 "onChange"메서드입니다.
$scope.onAccountStatusChange = function(status) {
$scope.status = status;
updateRegionFilterList();
};
$scope.onRegionFilterChange = function(selectedRegion) {
$scope.selectedRegion = selectedRegion;
};
마지막으로 다음은 updateRegionFilterList 메서드입니다.
var updateRegionFilterList = function () {
$scope.regions.empty();
angular.forEach($scope.accounts, function(account) {
if (account.reviewStatus === $scope.status) {
if ($scope.regions.indexOf(account.regionID) <= -1) {
$scope.regions.push(account.regionID);
}
}
});
$scope.regions.sort();
$scope.regions.unshift("Filter By Region:");
if ($scope.regions.indexOf(tempRegion) <= -1) {
$scope.selectedRegion = "Filter By Region";
}
};
selectedRegion 값을 보존하고 다시로드하고 ObservableArray를 비우는 대신 불필요한 영역을 분할하는 등 여러 가지 작업을 시도했으며 디버거에서 모든 값을 확인했으며 모든 값이 올바른지 확인했습니다 (아니요 명백한 경쟁 조건 중 하나).
어떤 아이디어?
나는 그것을 알아. 나는 검도 및 각도 구성을 드롭 다운과 혼합했고 각도 프로세스에 의존하여 데이터를 업데이트했습니다. Kendo MVVM 항목을 제대로 업데이트하지 못했습니다. 순수 검도로 전환하는 것이 트릭이었습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다