函数无法看到数组中的变化

时间:2015-01-27 09:17:07

标签: javascript angularjs function angularjs-scope mean

我有两个功能

功能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']

TEST

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

为什么选择功能2有新值?

1 个答案:

答案 0 :(得分:0)

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

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

所以,如果你将$ model设置为1(你在上面的行中),它​​当然会返回[1]。

在您的第二个函数中,我无法在任何作业的左侧看到$ scope.selected.project,因此它根本没有赋值[1]。< / p>