选择标记的选择值不会在angularjs中切换到外部

时间:2014-12-09 06:43:12

标签: javascript angularjs ng-options ng-switch

如果我在ng-switch中放置了一个select标签,那么双向绑定对ng-switch外的select tag ng-model不起作用。

请参阅以下代码

<div ng-switch on="OutputStep">
                <div ng-switch-when="0">
                   Switch Step One
                </div>
                <div ng-switch-when="1">
                     Switch Step Two<br/>
                       <select ng-model="SelectedReviewOption" ng-options="review as review.DisplayValue for review in ReviewOptions">
                       </select>
                       Selected Value : {{SelectedReviewOption.DisplayValue}}             
                </div>                        
</div>
<button ng-click="OutputStep = '0'" ng-disabled="OutputStep == '0'">
Back
</button>
<button ng-click="OutputStep = '1'" ng-disabled="OutputStep == '1'">
Next
</button>
Selected Value Outside Switch : {{SelectedReviewOption.DisplayValue}}

在此fiddle中,单击“下一步”按钮以查看第二个切换页面。更改选择标记中的值。观察到更改的值无法在开关外显示 -

3 个答案:

答案 0 :(得分:1)

有一个&#39;。&#39;在你的模型中将确保原型继承发挥作用。所以,使用

<input type="text" ng-model="someObj.prop1"> rather than 
<input type="text" ng-model="prop1">

working fiddle

understanding scope

答案 1 :(得分:0)

在ng模型中使用$ parent.var_name,因为ng switch会创建它的单独范围,如果未通过ng-init或其他东西(在控制器中)明确定义范围,变量将被限制为

答案 2 :(得分:0)

现在是.. 您需要使用$ parent来到交换机块之外的父作用域

$parent.SelectedReviewOption

http://jsfiddle.net/cobc0u3p/6/