2013-05-15 116 views
0

我想追加一些JS對象類似於你如何push到一個數組。 我知道你不能push到一個對象。所以我試圖找到另一種解決方案。這是一個時髦的解決方法來完成分頁。追加到JS對象

$scope.showMore = function() { 
    $rootScope.resultsObject = parseResults($rootScope.keywordData, $rootScope.limit); 
} 

這就是我遇到問題的代碼行。

parseResults()正在將我的keywordData,並將其轉換爲巨型字符串。 show more

當調用showMore()時,它將被分配到resultsObject以上,從而刪除前兩行數據。我寧願讓它增加2行到最後。在解決這個

以前曾試圖參與保持什麼是resultsObject正在運行的陣列,那麼我會更push結果成陣列&試圖通過parseResults重新運行它。這沒有奏效。它會創建額外的列,或將所有數據轉儲到一個列中。

所以現在我轉向JS專家尋求更好的解決方案。

我試過了一個小提琴,但它不能正常工作。如果你想看更多的代碼,我確實有JSFiddle。請記住它不起作用。

UPDATE

也許我的問題是我parseResults()。讓我告訴你什麼是對象實際上看起來像被解析後:

resultsObject{ 
    column0: "column1<br>test1" 
    column1: "column2<br>test2-1" 
    column2: "column3<br>test3" 
    column3: "column4<br>test4" 
    column4: "column5<br>test5" 
    column5: "" 
} 

所以,當我追加到resultsObject,我希望它添加到字符串的每個值。這怎麼可能?

回答

1

extend方法應該允許你這樣做。

var objectAB = { a: 1, b: 2 }, 
    objectCD = { c: 3, d: 4 }; 

var objectABCD = angular.extend(objectAB, objectCD); 

console.log(objectABCD); 
// { a: 1, b: 2, c: 3, d: 4 } 
+0

我不知道'extend'方法。我喜歡它的外觀。但是,它並沒有像我所期望的那樣發揮作用。 '$ rootScope.resultsObject = angular.extend($ rootScope.resultsObject,parseResults($ rootScope.keywordData,$ rootScope.limit));' 我相信這是正確的語法。但它只是給了我以前的東西。 – EnigmaRM

+0

很難說出什麼問題,你的小提琴的例子似乎沒有工作。您應該嘗試console.log()輸入參數的值。這可能會給你一些見解,說明爲什麼它不會返回你期望的結果。 –

+0

想想我可能已經意識到我的問題。在ParseResults中,我將鍵分配爲'Column [i]'...並且它以相同的索引開始......我正在覆蓋那裏的東西! grrrrr – EnigmaRM