簡體   English   中英

無法為變量賦值-Javascript

[英]Cannot assign value to a variable - Javascript

我在循環期間將“ $ scope.returnPollings [i]”的值分配給“ plrtn”時遇到麻煩。 “ $ scope.returnPollings”是帶有數據的對象,當我進行console.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM