Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 带指令的angularjs控制器_Javascript_Angularjs - Fatal编程技术网

Javascript 带指令的angularjs控制器

Javascript 带指令的angularjs控制器,javascript,angularjs,Javascript,Angularjs,试着让我的脑袋转过来慢慢地, 我遇到的一件事是使用控制器作为从指令中访问父范围。。。 ie我有一个控制器,该控制器的.tab=0:- .controller('EventTabCtrl', ['$scope', function ($scope) { this.tab = 0; }]) 以及一项指令:- .directive('createDirective', function () { return { scope:false,

试着让我的脑袋转过来慢慢地, 我遇到的一件事是使用控制器作为从指令中访问父范围。。。 ie我有一个控制器,该控制器的.tab=0:-

  .controller('EventTabCtrl', ['$scope', function ($scope) {
    this.tab = 0;
}])
以及一项指令:-

  .directive('createDirective', function () {

      return {
          scope:false,
          restrict: 'E',

          link: function (scope, iElement, iAttrs) {
              debugger;
              console.log(': link' + scope.tab);
          },
      }
  });
还有HTML

<div ng-controller="EventTabCtrl as eventtab">
        <create-directive></create-directive>
</div>
将阻止指令创建子作用域,并单独使用父作用域, 很好,我可以从内部访问选项卡

   link:
如果我不使用

controller as,  
然而,只要我使用

controller as,  
我现在无法从链接访问选项卡


有什么想法吗?

它将作为
scope.eventtab.tab
@Simon提供,在指令中使用别名很有诱惑力,但这可能是错误的。视图中指定了别名
eventtab
,现在您正在将指令与视图的知识相耦合。视图可以自由声明它认为合适的别名,这将立即破坏您的指令。您应该重新检查为什么不想将
选项卡
显式传递给指令(通过隔离作用域的属性,或通过属性传递和解析)@NewDev我基本上只是在玩指令测试对象选项/设置,据我所知,根据文档,设置作用域:false应使我能够完全访问链接中的父作用域。。在生产中,我可能会创建独立的范围,并将所需的项目传递进来。谢谢你的反馈!当然是学习曲线!
controller as,