Javascript IE11使用ng attr数据向对象添加斜边

Javascript IE11使用ng attr数据向对象添加斜边,javascript,jquery,html,css,angularjs,Javascript,Jquery,Html,Css,Angularjs,我对对象有一个问题,这是由于使用Angular.js用ng attr data填充对象的数据url造成的。我的对象是SVG(动画所必需的,并且在IE中工作良好,直到更改为angular.js) Internet Explorer使用类似于iFrame的斜角框呈现内容,因为它最初在文档加载时未找到数据属性,并且仅在角度更改/添加属性时才找到该属性。如果数据url是硬编码的,那么它可以正常工作,并且不会在其周围放置边框 我试过设置边框样式,边框宽度,轮廓,边框属性,边框属性,但都不起作用 我试图在对

我对对象有一个问题,这是由于使用Angular.js用
ng attr data
填充对象的数据url造成的。我的对象是SVG(动画所必需的,并且在IE中工作良好,直到更改为angular.js)

Internet Explorer使用类似于iFrame的斜角框呈现内容,因为它最初在文档加载时未找到数据属性,并且仅在角度更改/添加属性时才找到该属性。如果数据url是硬编码的,那么它可以正常工作,并且不会在其周围放置边框

我试过设置
边框样式
边框宽度
轮廓
边框
属性,
边框
属性,但都不起作用

我试图在对象标记上使用
ng if
,以防止它们呈现,但它的行为仍然相同(我假设是因为它在文档中,实际上没有从处理中排除)

这是有问题的元素标记:

<object ng-attr-data="{{url}}" id="svgobject" type="image/svg+xml" ></object>

演示问题的砰砰声:

这可能是一个相关问题:
我不太明白,但是如果你想删除任何html元素?你有两个选择: 1-)可以使用边框样式、边框宽度、轮廓属性或 2-)您可以使用css在html元素上添加一个类,如下面的代码

<div ng-app="" class="borderless">
  Some content...
</div>
.borderless{
  Border:none;
  /*or border:0;*/
  outline:none;

}

我已经通过创建一个angular指令将对象注入页面解决了我的问题,从而消除了对象在页面加载时没有设置data=”“属性的情况。该指令用对象标记替换设置它的div,并将数据svgname属性作为新对象的name和id属性传入

如果chrome没有在SVG中指定名称,那么它的缓存算法就会出错,并用其他已经缓存的SVG随机替换页面上的SVG

myApp.directive('injectSvg', function ($compile) {
        //Usage: 
        // <div inject-svg data-url="{{'svgfile.svg'}}" data-svgname="mysvg" class="svg"></div>
        //Replaces with SVG graphic
        return {
            link: function ($scope, $element, $attrs) {
                var el = angular.element('<object data="' + $attrs.url + '" id="' + $attrs.svgname + '" name="' + $attrs.svgname + '" type="image/svg+xml" class="' + $attrs.class + '"></object>');
                $compile(el)($scope);
                $element.replaceWith(el);


            }
        }
    });
myApp.directive('injectSvg',function($compile){
//用法:
// 
//替换为SVG图形
返回{
链接:函数($scope、$element、$attrs){
var el=角度元素(“”);
$compile(el)($scope);
$element.替换为(el);
}
}
});

也遇到了同样的问题。我不确定这是否是一个100%有效的处理方法,但到目前为止,我看不到任何错误或任何东西(在Chrome、FF、Safari、IE、Edge中检查)。基本上只是添加了一个空的“数据”属性:

<object type="image/svg+xml" data="" ng-attr-data="{{url}}" id="svgobject"></object>


缺点是你必须设置元素的大小,否则会出现一些奇怪的跳跃

你能创建plunk来重现这一点吗?我希望这能起作用-它在firefox中呈现,但不幸的是在IE中,它甚至没有填充angular设置的第二个svg。在plunk中尝试后,它似乎没有表现出相同的行为,尽管注入url的svg的内容没有呈现。更新:在我的原始代码中添加了type=“image/svg+xml”之后,它现在复制了plunker中的行为。没有类型,注入的svg在初始页面加载后根本不会呈现。这不是一个可以通过css修改的边框(如问题中所述)。没有样式似乎会影响它,这就是为什么它是如此令人沮丧的问题。我可以看看你的代码部分吗?使用ng attr数据,我可以在explorerWorks中查看,但它不可用,因为有些浏览器试图在其中加载当前页面。