You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS中遍历会话数组并绑定元素至目标数组的实现咨询

解决AngularJS数组遍历与绑定问题

嘿,我来帮你搞定这个数组遍历和绑定的需求!结合你给出的代码结构,我分两种常见场景给你具体实现方案:


场景1:直接将会话数组元素添加到目标数组

如果只是想把$scope.pickedTransfers里的每一项原封不动放到$scope.multipleTransferGotten中,用AngularJS自带的angular.forEach就能轻松实现:

// 遍历pickedTransfers数组
angular.forEach($scope.pickedTransfers, function(transferItem) {
    // 将当前元素推入目标数组
    $scope.multipleTransferGotten.push(transferItem);
});

小提示:用angular.forEach比原生Array.prototype.forEach更适配AngularJS的生态,它能处理数组和对象,还能确保数据变更被Angular的脏检查机制捕获。


场景2:将会话元素映射到指定模板对象后再添加

如果需要把pickedTransfers里的元素字段,对应赋值到你定义的newParameters模板结构中,再添加到目标数组,记得要深拷贝模板对象(避免所有元素共用同一个引用),具体代码如下:

angular.forEach($scope.pickedTransfers, function(transferItem) {
    // 深拷贝newParameters模板,生成独立的新对象
    var newTransferEntry = angular.copy($scope.newParameters);
    
    // 按实际字段对应关系赋值,这里假设transferItem的字段名和newParameters一致
    newTransferEntry.UserId = transferItem.UserId;
    newTransferEntry.Udid = transferItem.Udid;
    newTransferEntry.TransType = transferItem.TransType;
    newTransferEntry.SourceAccNumber = transferItem.SourceAccNumber;
    newTransferEntry.SourceAccName = transferItem.SourceAccName;
    newTransferEntry.BeneficiaryAccName = transferItem.BeneficiaryAccName;
    newTransferEntry.BeneficiaryAccNumber = transferItem.BeneficiaryAccNumber;
    newTransferEntry.Amount = transferItem.Amount;
    newTransferEntry.Remarks = transferItem.Remarks;
    newTransferEntry.DestBankCode = transferItem.DestBankCode;
    newTransferEntry.AuthToken = transferItem.AuthToken;
    newTransferEntry.UseToken = transferItem.UseToken;
    
    // 将映射后的新对象推入目标数组
    $scope.multipleTransferGotten.push(newTransferEntry);
});

关键注意事项:异步处理

如果bank.getPaymentList()是异步请求(比如AJAX调用,返回Promise),一定要在请求完成的回调里执行遍历逻辑,否则$scope.pickedTransfers可能还是空数组:

// 异步获取支付列表后处理遍历
bank.getPaymentList($scope.paymentList)
    .then(function(response) {
        // 假设返回的数组数据在response.data中,根据实际接口调整
        $scope.pickedTransfers = response.data;
        
        // 在这里执行上面的遍历逻辑
        angular.forEach($scope.pickedTransfers, function(transferItem) {
            var newTransferEntry = angular.copy($scope.newParameters);
            // 字段赋值...
            $scope.multipleTransferGotten.push(newTransferEntry);
        });
    })
    .catch(function(error) {
        console.error('获取支付列表失败:', error);
    });

内容的提问来源于stack exchange,提问作者Donald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:28:23