函数看不到数组的变化

Function can't see change in array

我得到了这两个功能

函数 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(您在上面的行中这样做),它当然会 return [1].

在你的第二个函数中,我在任何赋值的左侧都看不到 $scope.selected.project,所以它根本没有被赋值 [1].