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 定义范围变量的最佳实践_Javascript_Angularjs_Angularjs Scope_Angularjs Controller - Fatal编程技术网

Javascript 定义范围变量的最佳实践

Javascript 定义范围变量的最佳实践,javascript,angularjs,angularjs-scope,angularjs-controller,Javascript,Angularjs,Angularjs Scope,Angularjs Controller,我有这张表格。此表单包含许多输入,如名字、姓氏、职务、备注、州、部门、文档、主管……等等 最初我有一个这样的控制器 app.controller("titleCtrl", function ($scope) { $scope.FirstName = ... $scope.LastName = ... $scope.Notes = .... $scope.JobTitle = ...

我有这张表格。此表单包含许多输入,如名字、姓氏、职务、备注、州、部门、文档、主管……等等

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

    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 creator关于最佳实践的精彩视频取决于您所说的最佳实践

角度形式提供动态变量。将ng模型添加到输入元素时。 因此:


first_name
可在您需要时使用

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


如果不需要更改每个变量,可以跳过所有变量的声明,只需使用javascript本机对象即可

下面答案中的一些非常好的建议。你应该意识到
<input name="first_name" ng-model="first_name">