Javascript AngularJS对函数中的字符串求值,以调用json列表上的属性
我希望我能给它一个更具描述性的标题,但我真的不知道我想做什么的名字。我在angular中有一个JSON列表,如下所示:Javascript AngularJS对函数中的字符串求值,以调用json列表上的属性,javascript,json,angularjs,Javascript,Json,Angularjs,我希望我能给它一个更具描述性的标题,但我真的不知道我想做什么的名字。我在angular中有一个JSON列表,如下所示: $scope.users = { // list name and the "title" must be the same Guest: { title: 'Guest', list: [ { id: "0", nam
$scope.users =
{
// list name and the "title" must be the same
Guest:
{
title: 'Guest',
list:
[
{ id: "0", name: "Stephen" },
{ id: "1", name: "Mitch"},
{ id: "2", name: "Nate"},
{ id: "3", name: "Rob" },
{ id: "4", name: "Capt. Jack"},
{ id: "5", name: "Herman" }
]
},
Admin:
{
title: 'Admin',
list:
[]
}
};
我需要动态地计算一个字符串(“Guest”或“Admin”或任何其他尚未创建的用户组),以便将用户从一个用户组移动到另一个用户组
我正在使用的函数如下所示:
$scope.moveUser = function(fromId, toId, index) {
scope.users.toId.list.push(scope.users.fromId.list[index]);
scope.users.fromId.list.splice(index, 1);
};
“fromId”和“toId”是计算用户组名称的字符串(“Admin”或“Guest”)。现在,函数正试图找到一个名为“toId”的JSON字段,当它找不到任何字段时会出现错误。如何首先计算字符串,以便如果toId==“Guest”和fromId==“Admin”,我的函数将变为:
scope.users.Guest.list.push(scope.users.Admin.list[index]);
scope.users.Admin.list.splice(index, 1);
如果我理解正确:
$scope.moveUser = function(fromId, toId, index) {
if (users.hasOwnProperty(fromId) && users.hasOwnProperty(toId)) {
scope.users.toId.list.push(scope.users.fromId.list[index]);
scope.users.fromId.list.splice(index, 1);
return true;
} else {
return false;
}
};
将$scope.moveUser函数更改为
$scope.moveUser = function(fromId, toId, index) {
$scope.users[toId].list.push($scope.users[fromId].list[index]);
$scope.users[fromId].list.splice(index, 1);}
这确实是一项工作这也能做同样的事情。它仍然试图在JSON中查找“toId”字段,而不是查找scope.users.Admin.list。。。错误为未捕获的TypeError:无法读取未定义的属性“列表”!真管用!您知道这种运行时评估的名称吗?另外,它是angularjs特有的还是一个普通的javascript东西?不,它不是angularjs特有的,它是一个惊人的javascript东西,请原谅:(我不知道这种评估的名称。再次请原谅我的英语写作不好