2017-01-25 4 views
0

В моем проекте я использую Роликовые SVGs следующим образом:Инлайн SVG в качестве директивы (Firefox выпуска)

HTML

<div style="display: none"> 
    <svg xmlns="http://www.w3.org/2000/svg"> 
    <symbol id="dropdown" viewBox="0 0 3.359 1.929"><path d="M1.68 1.929a.29.29 0 0 1-.204-.083L.085.484a.28.28 0 0 1 0-.401.293.293 0 0 1 .409 0L1.68 1.244 2.865.083a.294.294 0 0 1 .41 0 .28.28 0 0 1 0 .401l-1.39 1.361a.3.3 0 0 1-.205.084z"></path></symbol> 
    </svg> 
</div> 
<div one-svg svg-href="'dropdown'"></div> 

JS

var app = angular.module('app', []); 

app.directive('oneSvg', function() { 
    return { 
     templateUrl: 'inline-svg.html', 
     scope: { 
      svgHref: "=", 
      svgClass: "=" 
     } 
    }; 
}); 

inline- svg.html

<svg ng-class="svgClass"> 
    <use ng-href="{{ '#' + svgHref }}" ng-attr-href="{{ '#' + svgHref }}" href=""></use> 
</svg> 

Вот fiddle

выше создана директива работает только в Chrome и IE10, но не в Firefox (v 50.1.0).

Если я добавлю встроенный SVG без директивы, он отлично работает в Firefox. Пожалуйста, помогите мне сделать директивную работу даже в Firefox.

ответ

1

См. Изменения в этом PLUNKER.
Это работало для меня в FireFox, Chrome и Safari.

Html:

<svg style="display:none;" xmlns="http://www.w3.org/2000/svg" <svg style="display:none;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> 
    <defs> 
    <symbol id="dropdown" viewBox="0 0 3.359 1.929"> 
     <path d="M1.68 1.929a.29.29 0 0 1-.204-.083L.085.484a.28.28 0 0 1 0-.401.293.293 0 0 1 .409 0L1.68 1.244 2.865.083a.294.294 0 0 1 .41 0 .28.28 0 0 1 0 .401l-1.39 1.361a.3.3 0 0 1-.205.084z"></path> 
    </symbol> 
    </defs> 
</svg> 

<div one-svg="dropdown"></div> 

Директива:

app.directive('oneSvg', function() { 
    return { 
     template: '<svg ng-class="svgClass"><use xlink:href="{{ \'#\' + href }}"></use></svg>', 
     scope: { 
      href: "@oneSvg", 
      svgClass: "=?" 
     } 
    }; 
}); 
+0

Спасибо. Проблема в том, что я использовал атрибуты 'ng-attr-href' и' ng-href' в этом шаблоне. –

 Смежные вопросы

  • Нет связанных вопросов^_^