我有两个指令,一个被限制的元素,另一个属性多指令需要共享相同的专用范围
<bar-foo special></bar-foo>
现在的问题是,特殊指令需要在定义的东西barFoo
指令的范围。然而,barFoo指令有一个私人范围
angular.module('App')
.directive('barFoo', function() {
return {
restrict: 'E',
template: '<div><h1 ng-if="doit">Bar Foo</h1></div>',
scope: { /* private scope */ },
....
}
});
的doit
值由特殊指令设置
angular.module('App')
.directive('special', function() {
return {
restrict: 'A',
link: function (scope) {
scope.doit = false;
}
}
});
的问题是,barFoo设有私人范围,doit
不会被添加到该范围(但是$父母)。我想知道是否有可能让特殊指令与barFoo指令具有相同的范围?
我只能想到通过以下方法解决:1)添加额外的属性
<bar-foo special doit="doit"></bar-foo>
或2)改变barfoo到
<div><h1 ng-if="$parent.doit">Bar Foo</h1></div>
虽然这个伟大的工程模板HTML,这感觉有点像解决方法!
任何时候当我遇到美元父母时,这表示我正在以某种不合意的方式做某件事。你似乎有同样的感觉。我会亲自为第一个解决方案 – Blackunknown 2014-10-07 13:44:54