2013-02-20 2 views
0

나는 테이블과 선택이있는 간단한 페이지가 있습니다. html select에 미리 선택되어있는 기본값으로 필터링을 적용해야합니다. 페이지가로드 단계를 완료하면 필터를 즉시 적용해야합니다. 여기 내 코드는 다음과 같습니다Angular.js 기본 필터링

를 선택 :

<select class="span2" ng-model="fiASS"> 
     <option></option> 
     <option>Ftse Mib</option> 
     <option ng-selected="selected">Nasdaq</option> 
     <option>Dow Jones</option> 
     <option>Dax</option> 
     <option>Cac40</option> 
    </select> 

중계기 및 필터

<tr ng-repeat="obj in titoliASS | filter:filtroASS | filter:exchange| filter:poASS | orderBy:predicateASS:reverseASS"> 
      <td>{{obj.TITOLO}}</td> 
      <td class="hidden-phone">{{obj.INDICE}}</td> 
      <td>{{obj.POSIZIONE}}</td> 
      <td class="hidden-phone">{{obj.PREZZO}}</td> 
      <td class="hidden-phone">{{obj.S1}}</td> 
      <td class="hidden-phone">{{obj.R1}}</td> 
      <td class="hidden-phone">{{obj.S2}}</td> 
      <td class="hidden-phone">{{obj.R2}}</td> 
      <td><a href="Technical_Analysis.html?idtitolo={{obj.ID}}&titolo={{obj.TITOLO}}"><i class='icon-signal xmlcursor'></i></a></td> 
     </tr> 

선택 작업에 ​​기본 값에 대한 사전 선택하지만 필터가 적용되지 않습니다. 필터는 select에서 값을 변경할 때만 적용됩니다. 나는 prob가 분명하기를 바란다.

Thx.

답변

2

몇 가지 문제가 있습니다. 먼저 ng-selected 표현이 자신의 모델과 일치하지 않습니다.

둘째로, 그렇게해도, html에서 가져 오지 않습니다. fiASS 변수는 컨트롤러의 범위에서 설정해야합니다.

<select ng-model='fiASS' ng-options='index for index in indices'></select> 

그리고 당신의 컨트롤러 :

$scope.fiASS = 'Nasdaq'; 
$scope.indices = ['Ftse Mib', 'Nasdaq', 'Dow Jones', 'Dax', 'Cac40']; 

하면 select에 대한 데이터가 정적 인 것을, 당신은 단지 HTML 대신 컨트롤러를 인코딩하고 ng-options를 사용할 수 있지만, 가정

코드가로드되면 모델을 올바르게 설정하고 필터를 적용해야합니다 (값이 fiASS 인 경우).

Here's a fiddle.

+0

대단히 감사합니다. 지금은 완벽합니다 ..... !! – madimper