2016-03-03 15 views
1

你能幫助祕銀嗎?再次? :)祕銀組件不返回任何東西

在這個組件我想顯示一些數據,但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

'm'應該返回一個對象或拋出一個錯誤。在這種情況下,它肯定應該返回一個對象。看起來似乎沒有足夠的信息來解決你的問題。也許試試問[祕銀聊天室](https://gitter.im/lhorie/mithril.js) – Barney

回答

1

這裏的問題是,你正在使用$.each打造m('table')呼叫的孩子,但each將只是每個對象上執行的,不返回任何東西。所以,基本上,你留下了一個空表。

您需要的是[$.map][1],它將數組或對象中的所有項目轉換爲新的項目數組。因此,您將爲ctrl.data上的每個房產返還m('td')元素。

你可以看到它的工作on this fiddle。我還將tds設置爲錶行的子元素,因此如果需要生成多行,請考慮這一點。

+0

非常感謝,我知道了 – ConflictBoy

+0

嗨@ConflictBoy我很高興它有幫助。請點擊複選標記,考慮[接受此答案](http://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 – Vier