Select 요소에 각도 ng-options 특성에 추가 논리를 포함 할 수 있는지 알고 싶습니다.각도를 사용하여 Select 요소에 조건부 그룹화를 구현하려면 어떻게해야합니까?
한 가지 경우로, 나는 플랫하고 그들과 관련된 그룹핑이없는 옵션 세트가 있습니다. 다른 경우 동일한 설명이 가능한 여러 옵션이 있지만 각 ID는 범주별로 그룹화되어 있기 때문에 다양합니다. 보낸 데이터를 기반으로 그룹화 된 그룹으로 표시할지 그룹으로 표시하지 않을지 선택합니다.
그룹화 :
<select ng-model="tcCtrl.SelectedItem"
ng-options="item.Id + ' - ' + item.Description
group by item.GroupDescription
for item in ctrl.Context.ItemList }"></select>
가 그룹화되지 :
<select ng-model="tcCtrl.SelectedItem"
ng-options="item.Id + ' - ' + item.Description
for item in ctrl.Context.ItemList }"></select>
조건부 GROUPED?
가능하면 두 개의 분리 된 select 요소 인스턴스가있는 것을 피하고 싶습니다. 그러나 ngSelectDirective 구문 분석기가 실제로 조건부 논리를 사용한다고 생각하지 않습니다.
이와 비슷한 것을 구현하는 좋은 방법에 대한 생각은 무엇입니까?
업데이트 : 다음은 제안 된 시도가 보이는 방식입니다. 문자열을 작성하는 '논리'가없는 경우에도 마찬가지입니다.
var optionStr = "item.Id for item in ctrl.Context.Items";
...<select ng-options="{{ ctrl.optionStr }}"></select>...
문제는 제본하려고 시도 할 때 제본하려고하지 않는 것입니다. 생성 된 동일한 문자열을 가져 와서 {{속성}}을 바꾼다면 제대로 작동합니다. 심지어 문자열이 마크 업에서 렌더링되고 있음을 크롬에서 확인할 수 있습니다.
업데이트 : 나는 제안 된 방법이 매우 살균 된 환경에서 효과가 있다는 것을 입증했다. http://jsfiddle.net/xbws8r5h/
내 환경에는 변형이 있어야합니다.
왜 'ctrl.optionStr'을 쓰려고합니까? 만약에'optionStr' 만 있으면됩니다. ng-controller에서 컨트롤러 객체를 정의합니다. '
'이 컨트롤러의 컨텍스트에서 모든 바인딩이 확인됩니다. 예 : [여기] (http://www.w3schools.com/angular/angular_controllers.asp). –내 응용 프로그램에서 ControllerAs 구문을 사용하고 있습니다 ... $ scope에 직접 의존하지 않고 ... $ scope를 실행하려고 시도하는 것뿐만 아니라 문제가 아니라는 것을 증명했습니다. $ apply 및 변경 사항이 아직 없습니다. – beauXjames
포함하도록 업데이트되었습니다. 작동 버전의 바이올린. 문제는 내 환경이 같은 방식으로 작동하지 않는다는 것입니다.더 깊은 찾고. – beauXjames