2016-06-14 8 views
0

ng-options를 사용하여 개체 배열을 반복하고 적절한 상태 목록을보기에 표시하고 필요한 항목을 바인딩합니다. 모델.ng-options을 사용하여 선택 드롭 다운에서 개체 배열에 ng-show를 표시합니다.

이보기에는 주어진 시간에 두 가지 상태가 있으며 하나는 이미 값이있는 빈 workOrder 또는 workOrder입니다.

이제 workOrder가 'A'상태 또는 '활성'상태로 반환 된 경우 '닫힘'및 '처리 중'상태가 드롭 다운에 표시되지 않습니다.

나는 이것을 위해 ng-show를 사용하고 싶지만 이것을 해결하는 더 적절한 방법이 있는지 알고 싶습니다.

내 개체 : 내가 사용하고있는

workOrder.statuses = [ 
     { 
      'Status': 'Open', 
      'Code': 'O', 
      'Show': true 
     }, 
     { 
      'Status': 'Active', 
      'Code': 'A', 
      'Show': true 
     }, 
     { 
      'Status': 'Processing', 
      'Code': 'P', 
      'Show': true 
     }, 
     { 
      'Status': 'Closed', 
      'Code': 'C', 
      'Show': true 
     } 
    ]; 

내 HTML :

<select title="Status" class="form-control" id="ddlStatus" 
        ng-options="status.Code as status.Status for status in ctrl.statuses" 
        ng-model="ctrl.model.Status"> 
</select> 

나는이 작업을 얻으려고 노력 아무것도 작동하는 것 같다없고에 StackOverflow를 통해 검색에 문제로 실행하고 나는 솔리드 한 대답을 찾을 수 없었다.

도움을 주시면 감사하겠습니다. 모든

답변

1

먼저, 당신은 다음과 같은 옵션 배열을 필터링 할 수 있습니다 모든

<li ng-repeat="status.Code as status.Status for status in ctrl.statuses | filter : {Status: 'Open'}: true"> 

둘째, 당신은 그래서 당신이 지정할 수있는이

<select name="repeatSelect" id="repeatSelect" ng-model="data.repeatSelect"> 
    <option ng-repeat="option in data.availableOptions" value="{{option.id}}">{{option.name}}</option> 
</select> 

같은 옵션을 선택 채울 수 있습니다 상태 옵션을 숨길 수와 함께 '경우 NG가 -'당신은 보여주고 싶지 않아

업데이트 :

그래서 당신은 필터를 사용할 수 있습니다

<option ng-repeat="status in ctrl.statuses | filter : {Status: '!' + ctrl.model.Status}: true" value='{{status.Code}}'>{{status.Status}}</option> 

을 아니면 NG 반복을 사용하지 않으려면 선택 상태가 변경 될 때, 당신은 단지 범위의 옵션 배열을 필터링 할 수 있습니다.

+0

ng-repeat 대신 ng-options를 사용하는 것이 좋습니다. 마찬가지로 이것은 여전히 ​​내 질문에 대답하지 않을 것입니다. 내 결과는 완벽하고 예상대로 바인딩됩니다. 나는 지금 돌아 오는 현재 모델이 "활성"상태인지 언제 알 수 있기를 원합니다. 드롭 다운 선택에있을 필요가없는 옵션을 숨 깁니다. – Keeano

+0

@Markiyan Harbych를 태그하는 걸 잊었습니다. – Keeano

+0

당신은 무엇을 할 수 있습니까? - '돌아올'뜻인가요? –