Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Angular JS中,我们应该使用什么来分配模型数据?_Javascript_Angularjs_Forms - Fatal编程技术网

Javascript 在Angular JS中,我们应该使用什么来分配模型数据?

Javascript 在Angular JS中,我们应该使用什么来分配模型数据?,javascript,angularjs,forms,Javascript,Angularjs,Forms,我想知道使用Angular JS为每个表单元素指定模型名称的更好方法 我可以使用单个范围变量来分配它 <input type="text" ng-model="firstName"/> <input type="text" ng-model="lastName"/> 我还可以使用singleton对象分配它 <input type="text" ng-model="contact.firstName"/> <input type="text" ng

我想知道使用Angular JS为每个表单元素指定模型名称的更好方法

我可以使用单个范围变量来分配它

<input type="text" ng-model="firstName"/>
<input type="text" ng-model="lastName"/>

我还可以使用singleton对象分配它

<input type="text" ng-model="contact.firstName"/>
<input type="text" ng-model="contact.lastName"/>


在内存和执行时间方面,哪种处理表单数据的方法更好?

您应该选择第二个选项,为了避免范围继承问题,请参阅:

作用域继承通常是直接的,您甚至不需要知道它正在发生。。。直到您尝试将双向数据绑定(即表单元素、ng模型)从子范围内绑定到父范围上定义的基元(例如数字、字符串、布尔值)


据AngularJS的创造者米什科·海弗利(Miško Hevery)说:

当你有ng模型的时候,一定会有一个点。 如果你没有一个圆点,你就做错了

问题是为什么

因为
ng开关
ng重复
等创建了自己的作用域。 比如说,

输出:

现在,代码与所有三个文本框始终同步

来源:


  • 通常最好使用第二种格式,而不是直接引用范围。它将帮助您最终移动到Angular 2,而不会污染范围。一般的规则是,如果没有一个点,你就做错了。
          <form ng-submit='addName()'>
    
              Name 1: <input type='text' ng-model='name'/>
              <input type='submit' value="Submit"/>
          </form>
    
          <p ng-switch='true'>
              Name 2: <input type='text' ng-switch-when="true"  ng-model='name'/>
          </p>
          <p>
              Name 3: <input type='text' ng-model='name'/>
          </p>
    
          <form ng-submit='addName()'>
    
              Name 1: <input type='text' ng-model='contact.name'/>
              <input type='submit' value="Submit"/>
          </form>
    
          <p ng-switch='true'>
              Name 2: <input type='text' ng-switch-when="true"  ng-model='contact.name'/>
          </p>
          <p>
              Name 3: <input type='text' ng-model='contact.name'/>
          </p>