javascript - 将对象文字插入数组(重复本身..)

标签 javascript angularjs

我不认为这真的是一个 Angular 问题,尽管我在使用 Angular ng-repeat 指令时偶然发现了这个问题。

我正在尝试使用 Push 将 javascript 对象文字存储到数组中,以便我可以在 ng-repeat 中对其进行迭代。

例如:

$scope.items = [];

var item = {
   name: "bob"
};

$scope.items.push(item);
item.name = "mary";
$scope.items.push(item);

此时,$scope.items[] 持有 Mary 名字的 2 个实例,而不是同时拥有 Bob 和 Mary。这是违反直觉的,因为我认为推送应该只是将下一个项目附加到数组的末尾。

我的真实代码(总结)如下所示:

$scope.items = [];

var item = {
   name: "";
};

for (var i = 0; i < 10; i++) {
   // I dynamically set the item.name to some value using retrieved values from server
   item.name = someValueFromServer;

   $scope.items.push(item);
}

因此,在 for 循环结束时,我没有获得 10 个不同的名称,而是获得了与最后检索到的名称相同的 10 个名称。

我不太清楚如何解决这个问题,也无法在网上找到任何内容。我对此还很陌生,所以可能我正在寻找错误的东西。

任何帮助都会很棒。非常感谢!

最佳答案

每次都会覆盖同一个对象。

for (var i = 0; i < 10; i++) {
    var item = {
       name: someValueFromServer;
    };
    $scope.items.push(item);
}

关于javascript - 将对象文字插入数组(重复本身..),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24317762/

相关文章:

javascript - 拖动后左侧和顶部位置的Angularjs指令属性绑定(bind)

javascript - 单击自定义按钮时调用日期选择器 View

javascript - 百分比倒计时

javascript - 在 Firefox 中将 HTML 插入 iframe 不会从服务器获取图像,但在 Chrome 中却可以。为什么会这样呢?

javascript - 将回调绑定(bind)到没有隔离范围的指令

angularjs - 是否可以在 Visual Studio 中不使用 .net 框架来构建 SPA?

javascript - 从 Angular Controller 中的 php 文件获取 JSONP 数据

javascript - 请求特定 PHP 函数的问题

javascript - 新的 Angular CLI 项目在 Internet Explorer 上失败

javascript - 在两个 Controller 之间更新 $scope