定义范围变量的最佳实践

Best practice for defining scope variables

本文关键字:最佳 范围 变量 定义      更新时间:2023-09-26

我有这个表格。这个表格包含很多输入,比如名字、姓氏、职称、备注、州、部门、文档、主管。。。等等

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

    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个左右变量的最佳/最佳方式是什么?

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

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

这是在作用域中具有模型(此处为user.)的最佳实践。您不应该直接在$scope对象中分配字段。就性能而言,AngularJS的工作范围远低于200个属性。由于AngularJS有一个摘要周期,当你有大量字段时,它总是会影响性能。

AngularJS创建者关于最佳实践的精彩视频https://www.youtube.com/watch?v=ZhfUv0spHCY

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

取决于您所说的最优。

Angular Forms提供动态的变量。当将ng模型添加到输入元素时。所以:

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

first_name在您需要时可用。

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

如果不需要更改每个变量,则可以跳过全部声明变量,只需使用javascript原生Form Data对象