定义范围变量的最佳实践

时间:2014-04-13 17:22:28

标签: javascript angularjs angularjs-scope angularjs-controller

我有这个表格。此表单包含许多输入,如名字,姓氏,职位,笔记,州,部门,文档,主管......等等

最初我有一个像这样的控制器

    app.controller("titleCtrl", function ($scope)
    {      
           $scope.FirstName = ...
           $scope.LastName = ...
           $scope.Notes = ....
           $scope.JobTitle = ...
           $scope.Department = ...
           $scope.Supervisor = ...
           $scope.Documents = ...
           $scope.ID = function(data){
                } 
           //and 15 more fields......            
});

我已经知道在这样的范围内声明变量并不是最好的做法。我的问题是什么是最佳做法?什么是在控制器中声明20个左右变量的最佳/最佳方式?

3 个答案:

答案 0 :(得分:3)

首先,$scope不是你的模特。它只是模型的占位符。假设您想要显示用户信息,那么您应该有这样的

$scope.user = {
    firstName: 'Joe',
    lastName: 'Masan',
    jobTitle: 'Engineer',
    age: 22,
};

这是在范围内使用模型(此处为user。)的最佳做法。您不应该直接在$scope对象中指定字段。在性能方面,AngularJS的工作范围远低于范围内的200个属性。由于AngularJS具有摘要周期,因此当您拥有大量字段时,它将始终达到性能。

关于AngularJS创作者https://www.youtube.com/watch?v=ZhfUv0spHCY

的最佳做法的精彩视频

答案 1 :(得分:0)

  • 如果变量,则在函数的开头声明它们 块。
  • 如果是属性,请创建一个命名空间并将其添加到其中,以便它 可以在全球其他地方访问,同时命名空间将 保存它直接添加到窗口对象。

答案 2 :(得分:0)

取决于你的最佳意思。

Angular Forms动态提供变量。将ng-model添加到输入元素时。 这样:

<input name="first_name" ng-model="first_name">

first_name可在您需要时使用。

但这取决于你想用它做什么。

如果您不需要更改每个变量,可以跳过一起声明变量,只需使用javascript native Form Data object