函数看不到数组中的更改

Function can't see change in array

本文关键字:看不到 数组 函数      更新时间:2023-09-26

我得到了这两个函数

职能1

    $scope.selected = [];
    $scope.selected.project = ['name:test, id:1'];
    $scope.selectedFs = function($item, $model) {
            $scope.selected.project = [$model];
        console.log($scope.selected.project[0]);
       }
    };

功能2

$scope.create = function() {
        var sign = new Sign ({
            sig: document.getElementById('canvas').toDataURL(),
            projectId:  $scope.proid,
            project: $scope.selected.project[0],
            timesheetId:  $scope.timesheetsId
        });
        console.log($scope.selected.project[0]);
        sign.$save(function(response) {
         }, function(errorResponse) {
            $scope.error = errorResponse.data.message;
        });
    };
}
]);

当我调用函数 1 时,我可以看到控制台中的 selected.project 发生了变化,但是当我之后使用函数 2 时,它只使用 ['name:test, id:1']

测试

selectedFs('1','1') ->
CONSOLE = [1] ->
create() ->
CONSOLE = ['name:test, id:1']

为什么函数 2 没有新值?

您的第一个函数包含以下行:

$scope.selected.project = [$model];

因此,如果您将$model设置为 1(您在上面的行中执行此操作),它当然会返回 [1]。

在您的第二个函数中,我看不到任何赋值左侧的 $scope.selected.project,因此根本没有为其分配 [1] 的值。