将 HTML 嵌套在带有秘银的字符串中

Nesting HTML in a string with mithril

我想用 Mithril 的 m 生成以下 HTML:

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

我目前正在为此使用 m.trust

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

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

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

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

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

html 字符串从何而来?

如果您正在编写视图,请使用 m('p', ...) 而不是 m.trust 例如,如果只有 "person" 值是动态的,你应该有这样的东西:

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 (如果可能的话)只发送动态值到客户。

你应该有这样的东西:

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