Nano Hash - криптовалюты, майнинг, программирование

Функция выделения области вызова из переменной шаблона angularjs

Я искал и не смог найти точного ответа на этот конкретный вопрос.

у меня есть директива

(function iife () {
var app = angular.module("MdfAngularApp");
    app.directive("actionButton", ['$compile', function ($compile) {
        var template = '<button class="icon" ng-disabled="!{{disable}}" ng-click="click()"><svg class="{{svgClasses}}" stroke="black"><use xlink:href="constructUseHref()"></use></svg><span>{{btnName}}</span></button>'
        return {
            restrict: "E",
            scope: {
                action: '&',
                sprite: '@',
                btnName: '@',
                svgClasses: '@',
                disable: '@',
                actionParams: "="
            },
            replace: "true",
            link: function (scope, element, attrs) {
                var spriteBaseUrl = "./Content/Images/mdf-sprite-sheet.svg";
                template = $compile(template)(scope);
                element.append(template);
                scope.click = function () {
                    scope.action(scope.actionParams);
                }
                scope.constructUseHref = function () {
                    return spriteBaseURL + "#"+ scope.sprite;
                }
            }
        }
    });
})();

Мой html

<action-button action-params="{user : user}" disable="{{manageRoleEnabled}}" svg-classes="small-icon" action="removeuser(user)" sprite="icon-close"></action-button>

Элемент находится в таблице, и элемент tr имеет ng-repeat с пользователем в userList из моего контроллера. Контроллер определяется через мой stateProvider.

Проблема, с которой я сталкиваюсь, когда пытаюсь это сделать, заключается в том, что в моем html xlink:href в элементе <use> моего шаблона просто указано, что buildUseHref(). Я что-то упустил в своем коде? Пожалуйста помоги :)

Заранее спасибо!


  • Можете показать html? 25.08.2016
  • Предполагая, что вы имели в виду HTML, к которому я применяю директиву, я добавил это к моему вопросу. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация 25.08.2016

Ответы:


1

Ответ на ваш главный вопрос был найден в вопросе "angular ng-href и svg xlink", и это означает, что все, что вам нужно сделать, это изменить тег <use> в вашем шаблоне на:

<use ng-attr-xlink:href="{{constructUseHref()}}"></use>

Ответ на этот вопрос говорит, что вам также может понадобиться добавить xlink:href="" после ng-attr-, но с Angular 1.4.12 это работало без него.

Примечание: replace принимает логическое значение, а не строку. Так что должно быть replace: true,, а не replace: "true",. (Из-за того, что JS обрабатывает непустые строки как правдивые, в этом случае это работает, но replace: "false" будет таким же, как replace: true, поэтому не используйте строки).

24.08.2016
  • Спасибо, это получилось! 25.08.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..