我怎样才能不再输入"$scope"在我的Angular代码中的每个变量和函数之前

How can I stop having to type "$scope" before every variable and function in my Angular code?

本文关键字:quot 代码 函数 变量 Angular 不再 再输入 scope 我的      更新时间:2023-09-26

必须在我使用的任何字段或方法之前键入$scope,这真的很烦人。我觉得我做错了什么。我见过一些人使用方法而不是控制器并使用这个,但我真正想要的是这样的:

use($scope) {
    var one = 'test';
    var two = function(v) { return v * 2 };
    two(one);
}

代替:

$scope.one = 'test';
$scope.two = function(v) { return v * 2 };
$scope.two($scope.one);

可能我就是不懂怎么用angular的方式写代码

如果您使用$scope纯粹是为了将变量绑定到视图,那么您应该查看controllerAs语法。当你使用controller as时,一个像这样的控制器:

app.controller('MainCtrl', function ($scope) {
  $scope.title = 'Some title';
});

看起来像这样:

app.controller('MainCtrl', function () {
  this.title = 'Some title';
});

推荐的方法是你发布的第二种方法,因为它是大多数程序员熟悉的方法,并且不会导致任何奇怪的边缘情况。

在JavaScript中,您可以技术上使用with语句来定义后续命令的作用域,但根据MDN,不建议这样做,因为它可能导致错误和兼容性问题。

警告:不建议在JAVASCRIPT中使用WITH语句。以下示例仅用于完整性:

var a, x, y;
var r = 10;
with (Math) {
  a = PI * r * r;
  x = r * cos(PI);
  y = r * sin(PI / 2);
}

关于MDN上with语句的更多信息