【问题标题】:What does the `$scope.$ctrl .xxxx` does?`$scope.$ctrl .xxxx` 有什么作用?
【发布时间】:2020-01-07 07:10:56
【问题描述】:

真的很奇怪的问题,我知道,但我不知道该代码的作用。在一个repo,我看到了这个code

$scope.$ctrl.browseData({ dataParameters: newValue });

忘记第二部分。括号内的所有内容都是数据源。我的问题是,$scope.$ctrl. 是做什么的?

我不知道。我什至不知道在哪里寻找或如何搜索它。如果我删除它并只输入ctrl......,我的错误就会消失,但我不确定,因为这是一种古老的功能。

我正在使用 AngularJS。有人可以向我解释这段代码$scope.$ctrl 的作用吗?谢谢!!

【问题讨论】:

  • 这是某个组件吗?这应该是一个控制器,取决于controllerAs 值。
  • 它访问$scope 对象的$ctrl 属性。大概这将是附加到范围的控制器的某个实例。该范围究竟是什么或我们不知道它是什么控制器。
  • 我认为this post 可能会回答您的问题。基本上$ctrl是angularJS中控制器的默认名称。
  • 可能重复。看看herehere

标签: javascript angularjs


【解决方案1】:

"Scope 是一个特殊的 JavaScript 对象,用于连接控制器和视图。Scope 包含模型数据。在控制器中,模型数据通过 $scope 对象访问。"

来源:https://www.tutorialspoint.com/angularjs/angularjs_scopes.htm

“在 AngularJS 中,Controller 由 JavaScript 构造函数定义,用于扩充 AngularJS Scope。

[...]

使用控制器来:

设置 $scope 对象的初始状态。 将行为添加到 $scope 对象。 "

来源:https://docs.angularjs.org/guide/controller

Angular 为每个控制器创建一个 $scope 对象。还有一个可用于所有控制器的 $rootScope 对象。

“作用域是指应用程序模型的对象。它是表达式的执行上下文。作用域以分层结构排列,模仿应用程序的 DOM 结构。作用域可以监视表达式并传播事件。”

我推荐这篇文章来了解作用域: https://docs.angularjs.org/guide/scope

【讨论】:

    【解决方案2】:

    $scope.$ctrl 是对以$ctrl 形式通过以下方式之一传递的某些控制器的引用

    • ng-controller="someCtrl as $ctrl" 在模板中
    • controllerAs: "$ctrl" 在指令和组件的情况下(它是组件的默认值)

    angular.module("app", [])
    .controller("someCtrl", function($scope){
      var vm = this;
      vm.sth = "something";
      
      $scope.getSth = function(){
        return $scope.$ctrl.sth;
      }
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
    <div ng-app="app">
    
      <div ng-controller="someCtrl as $ctrl">
      <div>{{$ctrl.sth}}</div>
      <div ng-bind="getSth()"></div>
      
      </div>
    </div>

    【讨论】:

      【解决方案3】:

      不用担心,我们都遇到过。

      一般 $ctr 指的是控制器。

      这就给我们带来了下一个问题:$scope.和控制器。?

      我注意到你缺乏这方面的实践,我建议你阅读以下内容:

      https://docs.angularjs.org/guide/scope

      如有任何问题,请随时问我!

      祝你有美好的一天:D

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多