Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SVG图像xlink:href无法使用敲除_Javascript_Html_Svg_Knockout.js - Fatal编程技术网

Javascript SVG图像xlink:href无法使用敲除

Javascript SVG图像xlink:href无法使用敲除,javascript,html,svg,knockout.js,Javascript,Html,Svg,Knockout.js,我正在尝试使用knockout渲染svg图像,但在成功绑定viewmodel后,它不会显示图像 这是SVG <svg width="500" height="500" style="border: solid 1px black"> <image id="img1" width="500" height="500" data-bind="attr:{'xlink:href': image}"></image> </svg>

我正在尝试使用knockout渲染svg图像,但在成功绑定viewmodel后,它不会显示图像

这是SVG

<svg width="500" height="500" style="border: solid 1px black">

<image id="img1" width="500" height="500"
        data-bind="attr:{'xlink:href': image}"></image>
</svg>

这是击倒绑定

<script>
    var viewModel = function(data){
        var self = this;
        self.image = ko.observable(data.image)
    };

    var data = {image: "http://2.bp.blogspot.com/-cGeVTe2XeWU/VUEiQidIJKI/AAAAAAAACwU/UYzCrcNMMAk/s1600/comic.png"};

    var vm = new viewModel(data);
    ko.applyBindings(vm);
</script>

var viewModel=函数(数据){
var self=这个;
self.image=ko.可观察(data.image)
};
变量数据={image:“http://2.bp.blogspot.com/-cGeVTe2XeWU/VUEiQidIJKI/AAAAAAAACwU/UYzCrcNMMAk/s1600/comic.png"};
var vm=新的视图模型(数据);
ko.应用绑定(vm);
无论如何,我在执行此代码后检查了页面源代码。因此,页面源中的SVG图像元素是

<image id="img1" width="500" height="500" data-bind="attr:{'xlink:href': image}" xlink:href="http://2.bp.blogspot.com/-cGeVTe2XeWU/VUEiQidIJKI/AAAAAAAACwU/UYzCrcNMMAk/s1600/comic.png"></image>

正如您在这里看到的,它正确地设置了xlink:href,但它没有显示在svg上

我是否需要以某种方式刷新DOM? 简单地说,如何使用knockout渲染SVG图像


当您使用img元素显示图像时,SVG元素不会添加到DOM中,因此knockout.js无法绑定到这些元素。此问题的答案包含一些可能有助于您的解决方案:


注意:我从Stackoverflow获得此解决方案。

xlink:href属性需要存在,即使使用空值也可以初始化HTML svg图像

所以图像标签应该是这样的



谢谢,我将尝试这些解决方案,并让您知道状态。感谢花了整整一天的时间,所有需要做的就是用空字符串初始化。我爱我的工作!(谢谢@mili)
  <image id="img1" width="500" height="500" xlink:href=""
        data-bind="attr:{'xlink:href': image}"></image>