मैंने बूटस्ट्रैप कस्टम पॉपओवर का उपयोग करके निर्देश बनाया है। यह किसी समूह के समूह के लिए उपयोगकर्ता से इनपुट लेता है और इसमें मॉडल के लिए लागू होने के लिए दो बटन होते हैं और टूलटिप पर उस मूल्य को दिखाते हैं और पॉपओवर को बंद करने के लिए बटन दिखाते हैं। मैं पॉपओवर जावा स्क्रिप्ट ईवेंट का उपयोग कर रहा हूं, समस्या यह है कि एकल पॉपओवर पूरी तरह से काम करता है लेकिन जब मैं एक और खोलता हूं तो यह पॉपओवर स्वयं बंद नहीं होता है। एक खुला होने पर अन्य popovers बंद करने में मदद की ज़रूरत है। यहां निर्देश दिखाते हुए plnk है।AngularJS बूटस्ट्रैप पॉपओवर कस्टम निर्देश
यहाँ कोड
var app = angular.module('myApp',[]);
app.directive('customEditPopover', function() {
return {
restrict: 'A',
template: '<span><i class="fa fa-tags" aria-hidden="true"></i></span>',
scope: {
'myModel': '=',
},
link: function (scope, el, attrs) {
scope.label = attrs.popoverLabel;
var btnsave = '#' + attrs.popoverSave;
var btncancel = '#' + attrs.popoverCancel;
var index = attrs.index;
$(el).tooltip({
title: '' + (scope.myModel == undefined) ? "" : scope.myModel,
container: 'body',
placement: 'top'
});
$(el).popover({
trigger: 'click',
html: true,
content: attrs.popoverHtml,
placement: attrs.popoverPlacement,
container: 'body'
})
.on('inserted.bs.popover', function (e) {
bindevents();
$('#popovertext' + index).val(scope.myModel);
}).on('hidden.bs.popover', function() {
Unbindevents();
});
function bindevents() {
$(btnsave).bind('click', function() {
var text = $('#popovertext' + index).val();
scope.myModel = text;
$(el).tooltip('hide')
.attr('data-original-title', text)
.tooltip('fixTitle')
toggle();
});
$(btncancel).bind('click', function() {
toggle();
});
}
function Unbindevents() {
$(btnsave).unbind('click');
$(btncancel).unbind('click');
}
function toggle() {
$(el).popover('hide');
$(el).click();
}
}
};
});
app.controller('MyController',['$scope',function($scope){
$scope.list=[
{
name:'ABC'
},
{
name:'DEF'
},
{
name:'GHI'
},
{
name:'KLM'
}
];
}]);
अन्य पॉपओवर बंद करने, जबकि अगले एक खोलने की आवश्यकता है है। IMO Updated Plunkr
$(el).popover({
trigger: 'click',
html: true,
content: attrs.popoverHtml,
placement: attrs.popoverPlacement,
container: 'body'
})
.on('show.bs.popover', function() {
var siblings = $(el).parent().parent().siblings();
siblings.each(function (each){
$(siblings[each]).find('span').popover('hide');
});
});
मैं प्लंक में देख सकता हूं कुछ भी काम नहीं करता है! – Aravind
कोणीय निर्देशों के लिए आसानी से उपलब्ध बूटस्ट्रैप है। मैं अपनी खुद की jquery कार्यक्षमता को तारों पर इस्तेमाल करने की सलाह दूंगा .https: //angular-ui.github.io/bootstrap/ – gh9
यदि @suzo ने आपके प्रश्न का उत्तर दिया है तो आपको उसे – gh9