在这个组件中我想显示一些数据,但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)
})
])
}
};
答案 0 :(得分:1)
这里的问题是你使用$.each
来构建m('table')
调用的子代,但each
只会在每个对象上执行,而不会返回任何内容。所以,基本上,你留下了一张空桌子。
您需要的是[$.map][1]
,它将数组或对象中的所有项目转换为新的项目数组。有了这个,您将在m('td')
上为每个属性返回ctrl.data
元素。
你可以看到它正常工作on this fiddle。我还将tds设置为表行的子项,因此如果需要生成多行,请将其考虑在内。