2013-08-20 29 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