だから私のHTMLで私はこのようなものを持っているとしましょう:
<tabcontent></tabcontent>
次に、このディレクティブの JavaScript は次のとおりです。
tabsApp.directive('tabcontent', function(){
var myObj = {
priority:0,
template:'<div></div>',
replace: true,
controller: 'TabCtrl',
transclude: false,
restrict: 'E',
scope: false,
compile: function (element, attrs){
return function (parentScope, instanceEle){
parentScope.$watch('type', function(val) {
element.html('<div '+val+'></div>');
});
}
$compile(parentScope);
},
link: function postLink(scope, iElement, iAttrs){}
};
return myObj;
});
HTML は適切に解析され、type の値はコントローラ JS で見つかります。
so <tabcontent></tabcontent> is replaced with <div recipe></div> for example..
(その部分はきちんと起こります)
したがって、レシピのディレクティブもあります。
tabsApp.directive('recipe', function(){
var myObj = {
priority:0,
template:'<div>TESTING</div>',
replace: true,
controller: 'TabCtrl',
transclude: false,
restrict: 'E',
scope: false,
compile: function (element, attrs){
return {
pre: function preLink(scope, iElement, iAttrs, controller){},
post: function postLink(scope, iElement, iAttrs, controller){}
}
},
link: function postLink(scope, iElement, iAttrs){}
};
return myObj;
});
これは明らかに非常に単純で、テスト用です。しかし、レシピ ディレクティブは処理されていません...
何が起きてる?