0
我有以下指令:爲什麼孩子指令沒有得到正確的範圍
function outer() {
return {
restrict: "A",
transclude: true,
scope: {
},
controller: function ($scope, $element, $attrs) {
$scope.thing = $attrs.thing;
},
template: '<div>Outer says {{::thing}} <div ng-transclude></div></div>',
replace: true
};
}
function inner() {
return {
require: "^outer",
restrict: "A",
transclude: true,
scope: {
thing: "@"
},
link: function (scope, element, attrs, outerCtrl) {
console.log(scope); //thing is undefined here
},
template: '<div>inner says {{::thing}}</div>',
replace: true
};
}
angular
.module('myapp',[])
.directive('outer', outer)
.directive('inner', inner);
搭配下面的HTML:
<div ng-app="myapp">
<div data-outer data-thing="hi">
<div data-inner>fff</div>
</div>
的問題是,我的內心指令不從父範圍接收thing屬性。父範圍用「hi」值正確分配,但孩子沒有收到。
https://jsfiddle.net/qbge5qse/47/
這是爲什麼?
你有沒有嘗試這個辦法:
你可以訪問它。範圍:{ thing:「=」 }, –
是的,這不起作用 - 請參閱https://jsfiddle.net/qbge5qse/47/ –