我正在尝试根据另一个变量创建动态生成的变量,例如:
var limit = 2;
$scope.blank_item = [];
$scope.create_vars = function(limit){
for(i=0; i<limit; i++){
eval('var item' + i) = $scope.blank_item;
};
};
这应该给我3个新变量,如下所示:
var item0 = [];
var item1 = [];
var item2 = [];
但是,当我尝试这样做时,收到以下错误消息:
ReferenceError: Invalid left-hand side in assignment
我的逻辑是否存在根本性的错误?
答案 0 :(得分:0)
这与Angular无关。传递给eval()
的值必须是一个或多个语句,而不是语句的一部分。而你当然不能将一部分语句传递给eval()
,然后为其分配一个值。
即使你可以这样做,它只会创建临时变量,一旦你的函数完成执行就会消失。
抛弃eval()
并使用数组:
var limit = 2;
var items = [];
$scope.blank_item = [];
$scope.create_vars = function(limit){
for(i=0; i<limit; i++){
items[i] = [];
};
};