Özel yönerge şablonumda otomatik artış numarasına ilişkin bir sorunum var. İhtiyacım olan işlevsellik, düğme tıklaması üzerine dinamik HTML içeriği eklemektir.Özel yönergede otomatik artış değeri
main.html
<div class="addTemplateContainer{{dataPoint.id}}"></div> <div ant-add-template-button parent="addTemplateContainer{{dataPoint.id}}"></div>
Direktifi - ant-eklentisi şablon button.js
app.directive('antAddTemplateButton', function ($compile) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
$(element).on('click', function() {
var compiledeHTML = $compile('<div ant-add-template></div>')(scope);
$('div.' + attrs.parent).append(compiledeHTML);
});
}
}});
Direktifi - ant-eklentisi template.js
app.directive('antAddTemplate', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
},
templateUrl: '../html/relation-join.html'
}}]);
Template - my-template.html
<select ng-model="joins[$i]" ng-change="myFunc($i)"></select>
Yukarıdaki kod, HTML içeriği eklemek için iyi çalışıyor ancak select & için kullanılan ng-modelim için diziyi kullanmam gerekiyor; bu nedenle, her değişiklik olayında işlevi çağırmam gereken bazı işlevler var. Düğmeyi tıklattığımda her defasında bir artış değeri olarak $ i almanın bir yolunu bulamıyorum.
Ng-modelleri, birleştirmeler [0], birleştirmeler [1], birleştirmeler [2] vb. Daha spesifik olarak, burada izole kapsamı kullanmak istemiyorum.
Herhangi bir yardım için teşekkür ederiz. Ben bunu derlenmiş önce şablonu işlemek amacıyla antAddTemplate
arasında compile
işlevi uygulamak gerekir inanıyoruz Bu deneyebilirsiniz
Oldukça sen ne işe yarar durumda anlamıyorum Çözmeyi denemekle birlikte, bu girişimli çözüm son derece sarsılmış görünüyor. Bileşenleri dinamik olarak eklemeniz gerekirse, tek ihtiyacınız olan 'ng-repeat' ve tekrarlanan verilere bir öğe eklemek için bir miktar tetikleme. – RIAstar
@RIAstar Aynı işi bitirdim ama benim için daha yönetilebilir olan direktiflerle çalışmayı bekledim. Teşekkürler...! $ window link fonksiyonu için bile çalıştı ama şablon için çalışmadı. – ba1ar