` Add New {{l.name}} $scope.ajaxurl1 = { url: domain.euphonySvc + '/itunes/searchartis', type: "POST", dataType: 'json', headers: { 'Authorization': 'Bearer ' + $rootScope.user.oauth2_token.access_token }, data: function (params) {

        if (params) {
            var data = {
                "artist_name": params.term
            }
            return JSON.stringify(data);
        } else {
            return JSON.stringify({ "artist_name": "" })
        }
    },

    processResults: function (data) {
        if (data.success) {

            data.data.artists.splice(0, 0, { name: 'Add New', id: '01' })
            return {
                results: data.data.artists.map(function (item) {
                    item.text = item.name;
                    return item;
                })

            };
        } else {
            return { results: [] }
        }

    },

}

.directive('select2Dropdown3', function () { return { restrict: 'AC', require: 'ngModel', link: function (scope, element, attr, ngModel) { element.select2({ placeholder: attr.placeholder, ajax: scope.ajaxurl1, templateResult: formatState });

                function formatState(details) {

                    var mediaLinks = '<span>' + details.text + '<span style="float: right;" class="media-links">'

                    if (details.apple_id === "") {
                        mediaLinks = mediaLinks + '<a class="disabled"><img src="images/assets/icons8-apple-logo.svg" class="icon" class="disabled"></a>'
                    } else {
                        mediaLinks = mediaLinks + '<a href="' + 'https://music.apple.com/us/artist/' + details.apple_id + '" target="_blank"><img src="images/assets/icons8-apple-logo.svg" class="icon" class="appleiconcolor"></a>'
                    }

                    if (details.spotify_id === "") {
                        mediaLinks = mediaLinks + '<a class="disabled"><img src="images/assets/icons8-spotify.svg" class="icon" class="disabled"></a>'
                    } else {
                        mediaLinks = mediaLinks + '<a href="' + 'https://open.spotify.com/artist/' + details.spotify_id + '" target="_blank"><img src="images/assets/icons8-spotify.svg" class="icon" class="appleiconcolor"></a>'
                    }

                    if (details.facebook_artist_page_url === "") {
                        mediaLinks = mediaLinks + '<a class="disabled"><img src="images/assets/icons8-facebook.svg" class="icon" class="disabled"></a>'
                    } else {
                        mediaLinks = mediaLinks + '<a href="' + details.facebook_artist_page_url + '" target="_blank"><img src="images/assets/icons8-facebook.svg" class="icon" class="appleiconcolor"></a>'
                    }

                    if (details.insta_artist_page_url === "") {
                        mediaLinks = mediaLinks + '<a class="disabled"><img src="images/assets/icons8-instagram.svg" class="icon" class="disabled"></a>'

                    } else {
                        mediaLinks = mediaLinks + '<a href="' + details.insta_artist_page_url + '" target="_blank"><img src="images/assets/icons8-instagram.svg" class="icon" class="appleiconcolor"></a>'

                    }
                    mediaLinks = mediaLinks + '</span></span>'

                    var $state = $(mediaLinks);
                    return $state;
                };
                element.on('select2:selecting', function (e) {
                    var originalEvent = e.params.args.originalEvent;
                    if (originalEvent) {
                        var target = originalEvent.target;
                        if (target && target.className == 'icon') {
                            e.preventDefault();
                            return
                        }
                    }
                });
                element.on('select2:select', function (e) {
                    scope.$apply(function () {
                        ngModel.$setViewValue(e.params.data);
                    });
                });

            }
        }
    })`
0

There are 0 best solutions below