2014-01-21 212 views
0

我有一個[對象對象]返回,我期待值。其他的帖子都無法幫助我。對象對象返回一組值但不是其他對象

我正在開發一個應用程序,該應用程序應該採取表單輸入併爲它們創建html,以便將它們複製並粘貼到需要有限html輸入的表單中。其目的是讓沒有HTML知識的人能夠上傳正確的HTML。

我已經獲得了大部分表單以按預期工作。不過,我無法獲得添加設施按鈕來填充輸出部分。表單本身很好。

<ul data-bind="foreach: amenities" id="#amenities"> 
    <li> 
     <input data-bind='value: title' /><a href='#' data-bind='click: $parent.removeAmenity'>Delete</a> 
    </li> 
</ul> 
<ul style='font-weight:600;padding:10px;box-shadow:5px 5px grey;border:solid 1px;' data-bind='foreach: amenities'> 
    <li style='margin-left:10px;' data-bind='text: title' /> 
</ul> 

它遍歷並正確顯示。但是,當我遍歷輸出:

something += "</p><hr/><ul style='font-weight:600;padding:10px;box-shadow:5px 5px grey;border:solid 1px;'>"; 
    something += $.each(self.amenities(), function(){ 
     return ("<li>" + self.amenities() + "</li>"); 
    }); 

我所得到的是對象作爲返回對象。它不會給我價值。再一次,我查看了SO上的所有其他對象對象帖子,並且沒有任何解決方案適用於我。這裏是jsfiddle供參考。

http://jsfiddle.net/8hydr/3/

回答

1

那是因爲你的連接具有一個字符串的對象。我不太瞭解代碼中$.each的用法。其實這是沒有道理的。

如果你想(通過調用函數),你應該使用$.map返回數組返回li元素的字符串表示的重新調整陣列的每個對象,那麼你就可以join數組元素,並將其轉換字符串:

//      [Object, Object, ...] 
//     ^ ^-------^-----^---- 
//      |      | 
something += $.map(self.amenities(), function(value) { 
    return "<li>" + value.title + "</li>"; 
}).join(''); 
0

嘗試改變你得到你的$.each

$.each(self.amenities(), function(x){ 
     something += "<li>" + self.amenities()[x].title + "</li>"; 
    }); 

原因[對象]是是因爲你不會告訴它哪個屬性超出了你想要抽出的數組中的對象。你已經命名它的標題,所以你需要告訴它。你也沒有正確地遍歷數組。

小提琴:http://jsfiddle.net/8hydr/5/

相關問題