2013-08-20 2 views
0

ng-src으로이 문제를 만났지만 <select>으로 처리하는 방법을 모르겠습니다. 아주 간단한 거래지만, 선택 드롭 다운이 나타나면 값을 변경할 수 없습니다. 행운없이 $apply()$compile()을 시도했습니다.ng-show 후에 각도 선택을 변경할 수 없습니다

저는 Angular가 그 요소를 컴파일하는 것을 모른다는 것이 문제라고 생각합니다. 어떤 아이디어? 여기

<blockquote class="header10"> 
    <label class="radio"> 
    <input type="radio" ng-model="panel.style" value="Rods and Rings">Rod and Rings 
    </label> 
    <select ng-hide="!(panel.style == 'Rods and Rings')" ng-model="panel.style.rodsAndRings"> 
    <option value="">--Choose Header--</option> 
    <option>Butterfly Pleats (2 inch)</option> 
    <option>Cuff Tops</option> 
    <option>Fan Pleats</option> 
    <option>Flat</option> 
    <option>Goblet Pleats</option> 
    <option>Inverted Box Pleats</option> 
    <option>Pencil Pleats</option> 
    <option>Pinch Pleats (4 inch)</option> 
    <option>Tab Tops</option> 
    <option>Tie Tops</option> 
    <option>Other</option> 
    </select> 
    <div ng-hide="!(panel.style.rodsAndRings == 'Other')"> 
    <p>Other <input type="text"></p> 
    </div> 
</blockquote> 

동작은 select 요소가 표시됩니다 후에, 나는 여전히 값을 볼 수 있으며 촬영하지 않기 때문에 항상 기본 --Choose Header--으로 돌아갑니다 그들 중 하나를 선택 할 수 있다는 것입니다 ... 코드입니다. Plunker에

테스트 케이스 : http://plnkr.co/edit/dTYcCi6aT3H5Gm7TEvyc?p=preview

답변

3

문제는 panel.style.rodsAndRings 유효한 NG 모델되지 않는 것입니다. panel.style을 문자열 프리미티브로 정의 했으므로 속성을 연결하면 작동하지 않습니다. http://plnkr.co/edit/b76CiC?p : 또한 내가

예를 들어
+0

옵션에 하드 코딩 대신-옵션을 겨 angulars를 사용하는 것이 좋습니다 panel.selected

처럼, 뭔가 다른 것을 할 모델을 변경해보세요 = preview –

+0

해줘서 고맙지 만 중첩 된 객체가 필요합니다. 어쩌면 내가 컨트롤러에서 정의하면 작동 할 것이다. 생각? – Brandon

+0

실제로, 중첩 된 속성을 사용할 필요가 없으며 루트 개체의 속성을 명시 적으로 지정할 수 있습니다. 이것이 꽤 형식이기 때문에 나의 목표는 적절한 네임 스페이스를 갖는 것이었다. 어쨌든 귀하의 도움에 감사 드리며 질문에 답변 해드립니다. – Brandon

관련 문제