在我的AngularJS项目中,我遇到了一个关于指令嵌套和变量传递的问题。
我创建了一个名为header的指令:
在votable.html中:
当我运行这段代码时,投票图标应该是隐藏的,但实际上它是显示的。
我还有另一个元素+指令组合:
我创建了一个名为header的指令:
.directive('header', [function() {
return {
restrict: 'E',
scope: {},
templateUrl: 'header.tpl.html',
link: function(scope, elem, attrs) {
scope.showDescriptions = false;
scope.expandDescriptions = function() {
...
scope.showDescriptions = !scope.showDescriptions;
}
}
}
}
在模板中,使用另一个指令:
<div class="description" votable show-vote="showDescriptions"></div>
并且是可投票指令:
.directive('votable', [function() {
return {
restrict: 'A',
scope: {
showVote: '='
},
templateUrl: 'votable.tpl.html',
}
}
在votable.html中:
<div class="vote" ng-show="showVote"></div>
当我运行这段代码时,投票图标应该是隐藏的,但实际上它是显示的。
我还有另一个元素+指令组合:
<div expandable expand="expandDescriptions" ng-show="showDescriptions"></div>
这个指令一开始是被隐藏的,但展开后,即使切换showDescriptions变量也无法折叠。
我需要做一些特殊的事情来将一个变量从指令的作用域传递到子指令的作用域吗?