Javascript SVG图像xlink:href无法使用敲除
我正在尝试使用knockout渲染svg图像,但在成功绑定viewmodel后,它不会显示图像 这是SVGJavascript 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>
<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>