范围变量在控制器中未定义

时间:2014-01-20 10:23:35

标签: javascript html angularjs

我使用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,那么范围将再次定义

1 个答案:

答案 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>