我有一些像这样的代码
$scope.grabItems = function(data) {
data.model = ['test'];
console.log($scope.ui.projects);
}
$scope.ui.projects = [];
$scope.grabProjects = function() {
$scope.grabItems({model: $scope.ui.projects});
}
我正在尝试使用另一个函数的参数更改$scope.ui.projects
变量(这样我可以使用任何变量编写抽象的grabItems函数)。
问题是看起来data.model = ['test']
根本没有改变$scope.ui.projects
变量,而是创建了一个全新的变量。
我如何以可重复使用的方式修改外部变量?
请注意,$scope.ui.projects
可能是任何变量。
答案 0 :(得分:0)
您实际上并没有改变$scope.ui.projects
,请尝试这样
$scope.grabItems = function(data) {
data.model = ['test'];
console.log($scope.ui.projects);
}
$scope.ui.projects = [];
$scope.grabProjects = function() {
$scope.grabItems($scope.ui.projects);
}
如果不清楚,请分享您的预期对象。
答案 1 :(得分:0)
你可以通过将项目推入数组来实现它:
$scope.grabItems = function(data) {
if(!angular.isArray(data.model))
throw new Error('Array expected');
data.model.length = 0; // empty array
data.model.push('test'); // push items
console.log($scope.ui.projects);
}
$scope.ui.projects = [];
$scope.grabProjects = function() {
$scope.grabItems({model: $scope.ui.projects});
}