秘银组件不会返回任何东西

时间:2016-03-03 13:09:22

标签: javascript jquery mithril.js

你能帮助秘银吗?再次? :)

在这个组件中我想显示一些数据,但m()没有显示任何内容,但数据不是空的。 非常感谢你

var default_panel_component = {
    controller: function(args) {
        return {
            'data': args.data //Object {name1: "data1", name2: "data2", name3: "data3"}
        }
    },
    view: function(ctrl) {
        return m("table", [
            $.each(ctrl.data, function (key, value) {
                console.log(key), //key1
                console.log(value), //data1
                console.log(typeof value), //string
                m("td", value)
            })
        ])
    }
};

1 个答案:

答案 0 :(得分:1)

这里的问题是你使用$.each来构建m('table')调用的子代,但each只会在每个对象上执行,而不会返回任何内容。所以,基本上,你留下了一张空桌子。

您需要的是[$.map][1],它将数组或对象中的所有项目转换为新的项目数组。有了这个,您将在m('td')上为每个属性返回ctrl.data元素。

你可以看到它正常工作on this fiddle。我还将tds设置为表行的子项,因此如果需要生成多行,请将其考虑在内。

相关问题