2

我想用 Mithril's 生成以下 HTML m

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

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

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

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

4

3 回答 3

3

是的,使用m函数来做到这一点:

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

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

于 2016-01-08T08:21:00.990 回答
1

html字符串来自哪里?

如果您正在编写视图,请使用 m('p', ...) 而不是m.trust 例如,如果只有“人”值是动态的,您应该具有以下内容:

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(如果可能)以仅将动态值发送给客户端。

于 2016-01-08T10:39:52.527 回答
0

你应该有这样的东西:

m.module(document.body, {
    view: function() {
    return m('p', [
        'I am a ',
        m('code', 'person')
    ]);
  }
})
于 2016-01-08T10:45:13.100 回答