我使用Angular-app作为项目的种子应用。我写了很多页面,一切似乎都很好。
然而,在其中一个案例中,我的模板看起来像这样:
<div ng-switch on="result">
<div ng-switch="error">Something went wrong!, try later</div>
<div ng-switch-default>
Wait loading information!!!!
</div>
<div ng-switch-when="ok">
<form ng-submit="sendData()">
<input type="text" ng-model="myName"/ >
<button type="submit" >Create entry</button>
</form>
</div>
</div>
即使我为myName
键入任何内容,我在提交表单时会收到一个未定义的值?
为什么范围会丢失?
是因为ng-switch
吗?我尝试将ng-controller="MyController"
放在
<div ng-switch-when="ok" ng-controller="MyController">....</div>
它工作得很好!!!
虽然如果我尝试在所有内容上使用更大的div
,那么范围将再次定义
答案 0 :(得分:1)
如果使用ng-switch,则会在运行时创建视图,并且范围会丢失。为了保持引用,你必须使用javascript引用对象。 工作示例在这里http://jsfiddle.net/J5ez6/ 因此,您的观点将是
<form ng-submit="sendData()">
<input type="text" ng-model="mod.myName"/ >
<button type="submit" >Create entry</button>
</form>