代码之家  ›  专栏  ›  技术社区  ›  Balu

AngularJs$范围参数名称

  •  0
  • Balu  · 技术社区  · 7 年前

    我对AngularJs很陌生。在最初的章节中,我看到了$scope的使用,就像在控制器中一样。

    <script>
    var app = angular.module('app1', []);
    app.controller('ctrl1', function($scope) {
        $scope.fn = "John";
        $scope.ln = "Parker";
    });
    </script>
    

    如果我替换函数参数 $范围 具有 $s 或者是这样,那么代码就不起作用了。为什么会这样?

    我的意思是,看起来我们在传递回调函数,那么为什么参数名很重要呢?

    请帮忙。

    提前感谢
    巴卢

    3 回复  |  直到 7 年前
        1
  •  1
  •   Amir Popovich    7 年前

    您可以重命名$scope,但需要添加一些字符串映射(这样angularjs就会知道如何注入正确的项)。此功能主要用于缩小:

    var app = angular.module('app1', []);
    
    app.controller('ctrl1', ['$scope', function($s) {
        $s.fn = "John";
        $s.ln = "Parker";
    }]);
    

    JSFIDDLE .

    顺便说一下,最好停止使用$scope,开始使用controlleras功能。了解它 here .

    var app = angular.module('app1', []);
    
    app.controller('ctrl1', function() {
        this.fn = "John";
        this.ln = "Parker";
    });
    
    <div ng-app="app1" ng-controller="ctrl1 as vm">
       {{vm.fn}}
    </div>
    

    JSFIDDLE .

        2
  •  1
  •   PSK    7 年前

    范围是指应用程序模型的对象。这是一个 表达式的执行上下文。作用域按层次结构排列 结构,它模拟应用程序的DOM结构。Scopes可以 监视表达式并传播事件。

    $scope 是AngularJS提供的对象,它是HTML(视图)和控制器之间的绑定部分,您不能按预期的方式更改它。

    我建议您阅读 manual

        3
  •  1
  •   binariedMe    7 年前

    Angular重新编译代码,并根据需求进行依赖注入。然而,更好的做法是以这种方式编写控制器:

    app.controller('testCtrl', ['$scope', function($scope){}]);
    

    此代码甚至可以用于文件的模糊处理。 您可以尝试以下链接以更好地了解这一点。

    Understanding dependency injection