Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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 Directive_Angularjs Scope_Angularjs Ng Repeat - Fatal编程技术网

Javascript 控制器和指令的作用域有何不同';谁的控制器?

Javascript 控制器和指令的作用域有何不同';谁的控制器?,javascript,angularjs,angularjs-directive,angularjs-scope,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Ng Repeat,控制器和指令控制器的作用域有什么区别?我很难理解其中的区别,以及我是否应该在DDO中为我的指令创建控制器 下面我有一个定义为MainCtrl的控制器和一个位于child指令内的控制器。当我将$scope记录到控制台时,它们看起来是一样的吗?它们实际上是同一个物体吗 var app = angular.module('plunker', []) .controller('MainCtrl', function($scope) { $scope.first = 'first test'

控制器和指令控制器的作用域有什么区别?我很难理解其中的区别,以及我是否应该在DDO中为我的指令创建控制器

下面我有一个定义为MainCtrl的控制器和一个位于child指令内的控制器。当我将$scope记录到控制台时,它们看起来是一样的吗?它们实际上是同一个物体吗

var app = angular.module('plunker', [])

.controller('MainCtrl', function($scope) {
    $scope.first = 'first test'
    console.log($scope)
  })
  .directive('child', function() {
    return {
      //scope: {},
      template: '<div>{{second}}</div>',
      controller: function($scope) {            
        $scope.second = 'second test'
        console.log($scope)
      }
    }
  })
var-app=angular.module('plunker',[])
.controller('MainCtrl',函数($scope){
$scope.first='first test'
console.log($scope)
})
.directive('child',function(){
返回{
//作用域:{},
模板:“{second}}”,
控制器:函数($scope){
$scope.second='second test'
console.log($scope)
}
}
})
和HTML

  <body ng-controller="MainCtrl">
    <child></child>
  </body>


阅读这篇文章。这将对你很有帮助


简短的回答是“是”,在directiveok中不使用隔离作用域时,它们是相同的,因此,如果使用隔离作用域,则指令的控制器将与其他控制器完全分离?我强烈建议阅读“是”……某种程度上……指令控制器作用域是一个新的作用域,在隔离时不会继承。因此,在创建指令时,是否最好使用自己的控制器创建它们,还是使用父控制器?