我有兩個指令,一個被限制的元素,另一個屬性多指令需要共享相同的專用範圍
<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