我之前使用ng-src
遇到了这个问题,但我不知道如何使用<select>
处理它。非常简单的交易,但在选择下拉列表后显示的值无法更改。我试过$apply()
和$compile()
没有运气。
我认为问题在于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
答案 0 :(得分:3)
问题是panel.style.rodsAndRings
不是有效的ng模型。
您将panel.style
定义为字符串基元,因此将属性附加到它将不起作用。尝试将模型更改为不同的模式,例如panel.selected
另外,我建议您在选项中使用angulars ng-options而不是硬编码