如何将新的键/值对元素添加到现有数组?

时间:2016-05-10 19:29:44

标签: javascript jquery angularjs angular-directive

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

 }

在我将链接元素(键/值)添加到javascript对象后,我无法在HTML模板中获得相同的内容

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

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

</div>

4 个答案:

答案 0 :(得分:0)

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

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

如果retMsg.data.records是数组,您仍然可以向$scope.data添加属性。

如果您想要数组中每个对象的不同链接,请执行此操作。

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

答案 1 :(得分:0)

如果数据是数组,您可以使用

$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';

答案 2 :(得分:0)

对不起。不知道我是否理解得很好。

也许您可以将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.

希望有所帮助

答案 3 :(得分:0)

我发现您的代码存在一些问题。

首先,您在@IBOutlet weak var reportCellViewedIndicatorOutlet: UIImageView! @IBOutlet weak var reportCell: UIView! override func awakeFromNib() { super.awakeFromNib() reportCell.translatesAutoresizingMaskIntoConstraints = false // viewed Indicator constraints let viewedIndicatorConstraints: [NSLayoutConstraint] = [ reportCellViewedIndicatorOutlet.rightAnchor.constraintEqualToAnchor(self.rightAnchor, constant: -3), reportCellViewedIndicatorOutlet.bottomAnchor.constraintEqualToAnchor(self.bottomAnchor, constant: -3) ] NSLayoutConstraint.activateConstraints(viewedIndicatorConstraints) 中使用变量名称record,然后在ng-repeat中使用report。我认为那些应该是一样的。

此外,ng-href不是link的成员,而是record的成员。您在此处将其设为data的成员:data。如果您要在$scope.data.link : 'http://www.newwebsite.com'函数中添加指向每个record的链接,则需要循环浏览添加到onHomePageLoaded的所有记录,然后添加data每个人的财产。