附加到JS对象

时间:2013-05-15 18:34:07

标签: javascript angularjs javascript-objects

我想要向JS对象添加类似于push到数组的方式。 我知道你不能push一个对象。所以我想找到另一个解决方案。这是完成分页的一种时髦的解决方法。

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

这是我遇到问题的代码行。

parseResults()正在使用我的keywordData,并将其转换为巨型字符串的show more

调用showMore()时,会在resultsObject上分配,从而删除前两行数据。我宁愿让它再添加2行。

以前尝试解决此问题涉及保持resultsObject中正在运行的数组,然后我会push更多结果进入该数组&尝试通过parseResults重新运行它。这没用。它会创建其他列,或将所有数据转储到一个列中。

现在我转向JS专家以寻求更好的解决方案。

我尝试过小提琴,但它无法正常工作。如果您希望查看更多代码,我确实有JSFiddle。请记住,它不起作用。

更新

也许我的问题出在我的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 个答案:

答案 0 :(得分: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 }