2013-08-20 32 views
0

我以前遇到過這個ng-src但我不知道如何處理它與<select>。非常簡單的交易,但在選擇下拉菜單顯示後,該值無法更改。我已經試過$apply()$compile()沒有任何運氣。無法更改ng顯示後的角度選擇

我認爲問題在於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定義爲字符串原語,因此將屬性附加到它不起作用。試着改變你的模式是不同的東西,像panel.selected

此外,我會建議你選擇

+0

例如使用而不是硬編碼的angulars NG-選項:http://plnkr.co/edit/b76CiC?p =預覽 –

+0

謝謝你的答案,但我確實需要它是一個嵌套的對象。也許如果我在可以工作的控制器中定義它。思考? – Brandon

+0

實際上,我想我不必使用嵌套屬性,只需在根對象上明確命名這些屬性即可。我的目標是擁有適當的命名空間,因爲這是相當形式的。無論如何,感謝您的幫助,它確實回答了這個問題。 – Brandon