访问控制器

时间:2018-05-08 15:31:29

标签: angularjs scope controller directive watch

在父控制器中为父数据分配了一个值。

在父html中调用testDir指令。

<test-dir directive-data="parentData"></test-dir>

testDir指令:

app.directive('testDir', function () {
  return {
   restrict: 'E',
   scope: {
    directiveData: '='   
   },
   controller: 'myctrl',
   templateUrl: 'view/myView.html'
  };
});

myCtrl controller:

app.controller('myCtrl', ['$scope', function($scope) {
   $scope.newVar = $scope.directiveData;
   console.log($scope.directiveData); //printing undefined.
   console.log($scope); //prints the scope objects, directiveData is having the correct value passed from the parent controller
   console.log($scope.new); //undefined
   /* remaining code using the variable newVar */
}]);

myView.html

<div>
{{directiveData}} <!-- displaying the proper value -->
</div>

我无法访问控制器内的指令范围。但是,它将被打印在html中。

但是在使用超时或监视功能时,也可以在控制器中访问范围变量。

我假设控制器首先被创建,后来指令正在进入图片。

我不想使用监视或超时功能来解决此问题。有什么建议吗?

提前致谢!

1 个答案:

答案 0 :(得分:-1)

尝试在指令中添加bindToController和controllerAs。