使用mithril将HTML嵌套在字符串中

时间:2016-01-08 06:13:19

标签: html mithril.js

我想用Mithril的m

生成以下HTML

<p>I am a <code>person</code></p>

我目前正在使用m.trust

m.trust("<p>I am a <code>person</code></p>")

但我不喜欢HTML字符串。有更好的方法吗?

3 个答案:

答案 0 :(得分:3)

是的,使用m函数执行此操作:

m('p', [
    'I am a ',
    m('code', 'person')
])

在此处查看整个组件:https://jsfiddle.net/rtkhanas/02adbhkt/

答案 1 :(得分:1)

html字符串来自哪里?

如果您正在撰写视图,请使用m(&#39; p&#39;,...)代替m.trust 例如,如果只有&#34; person&#34;价值是动态的,你应该有:

window.WhoAmI = {}

WhoAmI.controller = function(attr) {
    var ctrl = this

    ctrl.gender = m.prop(attr.gender)
}
WhoAmI.view = function(ctrl) {
    return m('p', [
        'I am a ',
        m('code', 
            ctrl.gender()
        )
    ])
}

如果从请求中获取整个html字符串,那么它可能是一件坏事,您应该尝试重写API(如果可能)以仅将动态值发送给客户端。

答案 2 :(得分:0)

你应该有这样的东西:

m.module(document.body, {
    view: function() {
    return m('p', [
        'I am a ',
        m('code', 'person')
    ]);
  }
})