如何向现有数组添加新的 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
属性 每一个。
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
属性 每一个。