2014-12-12 4 views
0

angularjs 1.3.6 업데이트로 일부 필터가 손상되었습니다.비동기 ng 옵션의 필터 사용 안 함 기본값

나는 그들을 고치고 this 해결책을 얻는 것을 시도했다.

<select ng-model="search.type" ng-options="g.id as g.name for g in group"> 
    <option ng-show="false" value="">Any</option> 
</select> 

목록을 필터링하지 것이다 '모든'옵션을 추가

기본 옵션을 숨 깁니다.

$scope.group = []; 
$scope.group[0] = {id:'',name:'Any'}; 

아무에게도 더 좋은 해결책이 있습니까? 이 ng-show 트릭을 사용하면 나에게 좋지 않은 것 같습니다.

+0

나는 문제가 무엇인지 이해하지 못하는 jsFiddle 업데이트

$scope.search = $scope.group[0] = {id:'',name:'Any'}; 

. 마지막 대안 (당신이 원했던 것입니까?)이 무엇을 해결 했습니까? –

+0

@NewDev 마지막 대안은 문제를 해결하지만 나에게는보기 흉한 것처럼 보입니다. 누군가가 더 깨끗한 해결책을 가지기를 바랍니다. – Pierre

+0

문제를 이해하지 못합니다. –

답변

0

거의 모든 것을 올바르게 수행했습니다. 이없는 2 가지이며, 다음은 ng-show 해킹 필요가 없습니다

  1. <select>의 뷰 모델 속성이 아니라 단지 Id 재산보다 실제 필터링 객체가 될 수 있도록, 적절하게 필터 문자열을 변경합니다.
  2. ViewModel 속성을 "모든"개체와 같게 만듭니다. <select>이 올바른 옵션으로 설정됩니다.

1)

<div ng-repeat="item in items| filter:search.type"> 
    {{item.name}} 
</div> 

<select ng-model="search" ng-options="g as g.name for g in group"> 
</select> 

2)

+0

ng-repeat에서 'filter : search' 만 유지하는 방법이 있습니까? select에서'ng-model = "search.type"'을 사용하면 여러 필드를 필터링하기 위해 여러 개의 드롭 다운 목록이있는 경우 유용합니다. – Pierre

+0

다시, 나는 당신이 의미하는 바를 정확히 모릅니다. 추가 요구 사항이있는 경우, 가지고있는 것을 설명하고 결과를 원하는 것에 대해 설명 할 수있는 다른 질문을하십시오. –