Utworzono dyrektywę przy użyciu niestandardowego popover bootstrap. To działa, pobierając dane wejściowe od użytkownika dla nazwy grupy i ma dwa przyciski do zastosowania tej wartości do modelu i pokazują tę wartość na etykiecie narzędziowej i przycisk do zamknięcia popover. Używam zdarzeń skryptu java popover, Problem polega na tym, że pojedynczy popover działa idealnie, ale kiedy otworzę inny, ten popover nie zamyka się. Potrzebujesz pomocy w zamykaniu innych witryn internetowych, gdy jedna jest otwarta. Oto plnk przedstawiający dyrektywę.AngularJS bootstrap popover custom dyrektywa
Oto kod
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'
}
];
}]);
Potrzebujesz pomocy zamykając inne popover podczas otwierania następnego.
Widzę w plucie nic nie działa! – Aravind
Istnieje bootstrap dla dyrektyw kątowych łatwo dostępnych. Polecam, aby użyć tego do nadpisania własnej funkcji jquery .https: //angular-ui.github.io/bootstrap/ – gh9
Jeśli @suzo odpowiedział na twoje pytanie, powinieneś przyznać mu nagrodę – gh9