如何在Meteor.js中设置html/body标签属性?

aln*_*fie 14 meteor

我需要在html标签上设置属性,或者在Meteor.js应用程序中设置文档的body标签.

具体来说我想拥有<html dir="rtl"><body dir="rtl">..

尝试后者,我收到控制台消息:

While building the application:
client/views/layout/layout.html:7: Attributes on <body> not supported

=> Your application has errors. Waiting for file change.
Run Code Online (Sandbox Code Playgroud)

那你怎么做的?

ric*_*ilv 19

您只需要在客户端Javascript启动时注入它们:

Meteor.startup(function() {
   $('html').attr('dir', 'rtl');
});
Run Code Online (Sandbox Code Playgroud)

UPDATE

请注意,您现在可以为body标签设置内联属性,它们将以与body标签内容相同的方式连接Meteor:

<body data-atttribute="foobar"></body>
Run Code Online (Sandbox Code Playgroud)

你可以有多个不同的身体标签,它们会合并在一起,所以上面只会为你现有的身体添加一个属性,而不是替换它.

据我所知,仍然需要通过Javascript设置HTML标记属性.

  • @richsliv有非js解决方案吗? (3认同)
  • Meteor是一个javascript框架,但你可以使用coffeeScript. (2认同)

Tur*_*çam 8

可以startup使用WebApp.addHtmlAttributeHook函数设置HTML标记的属性.这是一个例子:

Meteor.startup(function() {
    WebApp.addHtmlAttributeHook(function() {
        return {
            "dir": "rtl"
        }
    })
});
Run Code Online (Sandbox Code Playgroud)

确保在服务器上调用它,而不是客户端.