选择在ng-switch中不起作用。如果我从ng-switch中取出它,那么它会显示selItems值。
中的情况如下<div ng:app>
<div ng-controller='Ctrl'>
<div ng-switch on="controlType">
<div ng-switch-when="kendoDropDownList">
<select ng-model="selItems" ng-options="value for value in zoneList">Select Zone</select>
</div>
</div>
{{selItems}}
</div>
答案 0 :(得分:1)
那是因为ng-switch为他们每个人创建了一个隔离范围。
一种可能的解决方案是使用select:
模型中的$ parent<div ng:app>
<div ng-controller='Ctrl'>
<div ng-switch on="controlType">
<div ng-switch-when="kendoDropDownList">
<select ng-model="$parent.selItems" ng-options="value for value in zoneList">Select Zone</select>
</div>
{{selItems}}
</div>
</div>
</div>
答案 1 :(得分:1)
ng-switch-when
创建一个独立的范围,selItems
值仅在该范围内可用。两个解决方案:
<强> 1。使用$parent
<select ng-model="$parent.selItems" ng-options="value for value in zoneList">
这告诉Angular,将selItems
添加到父作用域(Ctrl-Scope)
<强> 2。使用controller as
语法
https://docs.angularjs.org/api/ng/directive/ngController
function Ctrl($scope)
{
this.controlType = "kendoDropDownList";
this.zoneList = ['rr','rrs','dsa'];
}
<div ng-controller='Ctrl as c'>
<div ng-switch on="c.controlType">
<div ng-switch-when="kendoDropDownList">
<select ng-model="c.selItems" ng-options="value for value in c.zoneList">Select Zone</select>
</div>
</div>
{{ selItems }}
</div>
答案 2 :(得分:0)
试试这个fiddel链接。现在工作正常。
[1]: http://jsfiddle.net/2827vLLe/6/