无法为变量赋值 - Javascript

Cannot assign value to a variable - Javascript

本文关键字:Javascript 赋值 变量      更新时间:2023-09-26

我在将"$scope.returnPollings[i]"的值分配给"plrtn"时遇到问题在循环期间。"$scope.returnPollings"是一个带有数据的对象,我可以在控制台时确认其中有数据.log它。

    db.transaction (function(tx) {
        var sql = "INSERT INTO STATUSREPLY (reply, name, userCode, icon, target, repliedDate) VALUES (?, ?, ?, ?, ?, ?)";
        var len = $scope.returnPollings.length;
        var plrtn;                              
        for (var i = 0; i < len; i++) {
            plrtn = $scope.returnPollings[i]; // value is not being assigned here
            tx.executeSql(sql, [plrtn.message, plrtn.name, plrtn.userCode, plrtn.qWink, plrtn.target, plrtn.createdDate ], 
                function(){ 
                        $scope.$apply(function(){
                            $scope.returnFstatus.push({
                                'message':$scope.ie.message, 
                                'createdDate':$scope.ie.createdDate, 
                                'icon':$scope.ie.qWink, 
                                'target':$scope.ie.target 
                                    });
                            })                                  
                    console.log('Status Inserted');
           },function(tx, error) {
                console.log('polling INSERT ERROR: ' + error.message);
                                 });
                            }

});

如果有人能帮助我,我会很高兴

答案是,您不止一次地将变量分配给同一个变量。我会这样做:

plrtn;//without var
        for (var i = 0; i < len; i++) {
            delete plrtn;
            plrtn = $scope.returnPollings[i]; // value is not being assigned here

查看$scope.returnPollings的值

var plrtn;  
console.log($scope.returnPollings);
for (var i = 0; i < len; i++) {

您将获得两个值$scope.returnPollings[0]
在控制台中,您应该能够看到
$scope.returnPollings[0]$scope.returnPollings[1]


$scope.returnPollings[0].message
$scope.returnPollings[0].name
$scope.returnPollings[0].userCode
$scope.returnPollings[0].q
$scope.returnPollings[1].message
$scope.returnPollings[1].name
$scope.returnPollings[1].userCode
$scope.returnPollings[1].q

在您的 SQL 中,您不需要使用 plrtn .

相反,您可以使用:

$scope.returnPollings[i].message
$scope.returnPollings[i].name
$scope.returnPollings[i].userCode
$scope.returnPollings[i].q