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