如何向现有数组添加新的 key/value 对元素?

How to add new key/value pair element to an existing array?

var onHomePageLoaded = function(retMsg)
 {
  $scope.data = retMsg.data.records;
  $scope.data.link : 'http://www.newwebsite.com'

 }

在我将 link 元素 (key/value) 添加到 javascript 对象后,我无法在 HTML 模板中获得相同的元素

<div ng-repeat="record in data">

  <a ng-href="{{record.link}}"> Click Here </a>

</div>

Javascript 是一种动态语言。您可以通过一种非常简单的方式向现有对象添加属性,例如为现有 属性 赋值。只需添加一个新的 属性

$scope.data.link = 'http://www.newwebsite.com'

如果retMsg.data.records是一个数组,你仍然可以在$scope.data中添加一个属性。

如果您希望数组中的每个对象都不同 link,请执行此操作。

$scope.data.forEach(function(obj){
    obj.link = "your custom link" // write your logic here to produce different link.
});

如果数据是一个数组你可以使用

$scope.data.push(yourData);

例如

$scope.data.push({link : 'http://www.newwebsite.com'});

或者如果你想访问数组中的对象并为它们添加一个键值对,你可以这样做:

// add the link to the first entry
$scope.data[0].link = 'http://www.newwebsite.com';

对不起。不知道我有没有看懂。

或许你可以将scope.data定义为:

$scope.data = {retMsg.data.records}

然后例如一个函数:

    $scope.addNew = funtion(){
     $scope.data.newElement = $scope.viewElement
    };

在你的HTML

  <label>{{data}}</label> // Which makes reference to the $scope.data at the controller 
  <input ng-change="addNew()" ng-model="viewElement"></input>
  <label>{{data.newElement}} // Will be empty at the very beginning but will show the new element once it is created.

希望对您有所帮助

我发现你的代码有几个问题。

首先,您在 ng-repeat 中使用变量名称 record,然后在 ng-href 中使用 report。我想那些应该是一样的。

此外,link 不是 record 的成员,它是 data 的成员。您在此处将其设置为 data 的成员:$scope.data.link : 'http://www.newwebsite.com'。如果您想将 link 添加到每个 record,在您的 onHomePageLoaded 函数中,您需要遍历添加到 data 的所有记录,并添加link 属性 每一个。