XML3D, document.createElementNS, and Meteor
XML3D, document.createElementNS, and Meteor
我把这个发布到了Meteor Talk谷歌小组,但我认为这是一个如此模糊的问题,它需要信号增强。
我正在尝试创建一个插件,让您可以将XML样式元素添加到HTML文档中,就像HTML5一样,用于XML3D。我认为用Blaze模板和XML3D反应性地呈现3D内容会非常棒。
我需要使用document.createElementNS方法将元素添加到DOM中,以便将它们添加到SVG之外的其他名称空间中,以便尝试使用其他规范。
不幸的是,Meteor只支持SVG命名空间的该方法,如下代码所示:https://github.com/meteor/meteor/blob/a81fbf483efa4f40ea2d382f0c7275d408536e96/packages/blaze/materializer.js#L41
我考虑了两种不同的方法。我可以创建一个模板块助手,一个看起来像这样的:
在空格键中:
{{#xml ns="http://www.xml3d.org/2009/xml3d"}}
<xml3d>...</xml3d>
翡翠:
+xml(ns='http://www.xml3d.org/2009/xml3d')
xml3d ...
这篇文章很简单,但我如何使用正确的名称空间,以反应的方式将渲染的内容交付给Blaze——最终交付给DOM?
或者,我可以尝试以某种方式扩展Blaze以支持其他名称空间,也许可以使用包。我也不知道该怎么做,因为我不认为一揽子计划可以延长Blaze。我确实看过BlazeTools,也许这会有所帮助?关于它做了什么的文档相当稀少,代码实际做了什么也不明显。
或者这两种方法的某种组合,例如,使用块帮助器向Blaze发出XML名称空间的信号,以在下面呈现块帮助器的内容。
想法?
所以,我并不完全肯定这毕竟是Meteor的问题。
一旦我运行了XML3D初始化代码,Meteor似乎已经足够有效地添加了我的元素。一旦XML3D被正确初始化,我就可以做很多事情,包括使用反应模板。
我不得不在我的路线控制器中一起破解这段代码,然而。。。
Template.{insert-your-template-name-here}.rendered = ->
window.initXML3DElement $('xml3d')[0]
setTimeout ->
$('canvas').attr
width: 600
height: 600
$('canvas').parent().css
display: 'block'
, 1000
我希望这能帮助任何在未来遇到这个问题的人。欢迎更多的评论和支持,但我对目前的情况非常满意。
我很快就会写一个包来帮助解决这个问题,并将其上传到Atmosphere。
- Meteor如何接收HTTP请求
- Meteor-将选定窗体中的对象添加到集合中
- Meteor上的启动页面
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- Meteor-添加用户自定义字段的方法不起作用
- Meteor忘记了密码的实现
- Meteor 1.3 and RequireJS
- $geoIntersect and Meteor
- Meteor session.set/get and jquery modal
- XML3D, document.createElementNS, and Meteor
- Meteor和Mongo and标签过滤器有一个转折点
- Connecting Prismic.io and Meteor js
- Meteor js and fullcalendar
- meteor.js and npm require fs
- Meteor.js and npm
- Meteor and Jekyll
- Meteor Session.get and Regex
- FullPage.js and Meteor
- Meteor js cursor hasNext() and next()?
- Rooms/Channels and userId in Meteor.js