親ディレクティブ内に子ディレクティブを作成し、テンプレートからのHTMLをブートストラップモーダルに挿入する次のモーダル属性(childディレクティブ内)を使用する方法はありますか?子ディレクティブには、テンプレートに質問属性とモーダル属性が含まれます。Angularディレクティブを別のディレクティブにレンダリングするにはどうすればよいですか?
This articleこの例では、固有の属性、つまりquestionとmodal属性を持つ特定の子ディレクティブが必要なため、役に立たない。
HTML:
<learn-card title="Eligibility">
<learn-item question="Who Can Purchase a meal plan" modal="/elegibility/HowDoISignup.html"></learn-item>
<learn-item question="How Do I sign up for a meal plan?" modal=""></learn-item>
</learn-card>
が指令:
以下の例では、私は私が私のテンプレートコードの内部でブートストラップ4モーダルを追加する必要があり、問題がクリックされたときにコンテンツを変更することができますと仮定。それ以前のページにすべてのモーダルを追加するよりも簡単でしょうか?このディレクティブからHTMLをコンパイルし、他のディレクティブからHTMLを連結する必要がありますか?
angular.module('main').directive('learnCard', function($http, $compile){
return{
compile: function(element, attrs){
console.log(attrs);
},
template: "<div class='col-sm-4'>"+
"<div class='learn-card box-shadow'>" +
"<h3 class='text-center'>{{title}}</h2>" +
"<ul></ul>" +
"</div>" +
"</div>",
scope: {
title: '@title'
},
link: function(scope, element, attrs){
console.log(attrs);
element.compile.html(element);
element.bind(attrs.title, function(){
});
}
}
});
ここでは、親ディレクティブの中に個々の質問がすべてあります。これを単独で実行しても質問はされません。
angular.module('main').directive('learnItem', function(){
return{
template: "<li data-toggle='modal' data-target='{{modalId}}'">{{question}}</li>",
scope: {
question: '@question'
},
link: function(scope, element, attrs){
alert('working');
console.log($('learn-item'));
}
}
});
Angularは親ディレクティブをコンパイルし、次に子供のために結果を見て、等をコンパイルします。これを許可することは何もありません。これはすでにメカニズムです... – Nico