javascript - css 中的 url 被 angular 重写

标签 javascript css angularjs svg base-url

在 angular 中,有一个问题是 base set 和带有 svgs 的 html5mode。它会导致所有类似 filter: url(#url) 的事情重写为 filter: url(/base/#url) .

https://github.com/angular/angular.js/issues/8934

我试过禁用 html5 模式并删除基础,但每当 Angular 引导时它仍然重写 url。

当 angular 正在加载时,如果 svg 存在,它将显示正确的剪辑/过滤器,但是一旦 angular 初始化它就消失了。有谁知道解决方法?我试过在定位它之前使用完整的文件路径以及使用禁用 base.

我的意思是有基础集 <base href='/'>它应该正常工作。

对这个问题的进一步检查表明,当 angular 被初始化时,它将过滤器转换为 svg

Angular 之前

<svg>
  <defs>
    <filter>
    </filter>
  </defs>
  <g> 
    <path>
  </g>
</svg>

引导后

<svg>
  <defs>
    <svg class='filter'> 
      <path>
    </svg>
  </defs>
  <g> 
   <path>
  </g>
</svg>

最佳答案

我认为您可能在索引文件的头部设置了错误的基本属性。

Be sure to check all relative links, images, scripts etc. Angular requires you to specify the url base in the head of your main html file () unless html5Mode.requireBase is set to false in the html5Mode definition object passed to $locationProvider.html5Mode(). With that, relative urls will always be resolved to this base url, even if the initial url of the document was different.

Documentation

关于javascript - css 中的 url 被 angular 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29110166/

相关文章:

javascript - 如何检查 jQuery 插件中是否存在某个元素?

javascript - 在 Google Maps Places API 中更改默认文本 "Enter a Location"

javascript - 如何在不重新加载/刷新数据的情况下使 html 页面可打印?

html - 在分区中显示链接的内容

javascript - AngularJS 在一个组件与另一个组件之间传输数据

javascript - 如何在 Angular js 中触发 'click ' 事件

javascript - 变量更改在我的 $scope 函数中不可见

javascript - 如何对 MultiLineString 进行排序?

javascript - 覆盖主题响应

javascript - 尝试定义数组