angularjs - 有什么方法可以将变量名与字符串连接起来,或者这是基本的编程错误

标签 angularjs angularjs-directive angularjs-scope

我正在开发 AngularJs 应用程序。我有一个 HTML 选择标签数组,其中我将 ng-model 名称和选项列表名称与变量连接起来。我有两个列表或数组。第一个数组是一个级别列表,用于在文档上附加多个选择标签。

<div data-ng-repeat="level in levelslist">
<select ng-model="subtopics_"+{[{level}]} ng-options="subtopic.name for subtopic  in subtopicslist_"{[{level}]} ng-change="loadOtherSubTopics(level)">
</select>
</div>

如 HTML 代码中所示,我将级别与数组名称和模型名称连接起来。并调用 ng-change 上的函数。这是一个 AJAX 请求。
我的 AngularJs 函数是

$scope.loadSubTopics=function(){
        $http.get('/pathfortherequest/).
            success(function(data, status) {
                $scope.subtopicslist_+data.level=data.subtopicslist;
            })
            .
            error(function(data, status) {
                $scope.data = data || "Request failed";
                $scope.status = status;        
            });
       };

我在后端返回的数据中有一个级别变量。我想要做的是因为我有列表和 ng-models 名称与 level 变量连接。在将数据分配给该列表时,我想将从 ajax 请求接收到的 data.level 与列表名称连接起来,如下所示

$scope.subtopicslist_+data.level=data.subtopicslist;

但是当我尝试这样做时,出现错误

ReferenceError: invalid assignment left-hand side
$scope.subtopicslist_+data.level=data.subtopicslist;

我正在尝试连接列表或数组的名称。告诉我我该怎么做。 就像在 python 中一样,我们可以使用 %s %(level) 来做到这一点。我们如何在 AngularJs 中应用同样的方法? 帮助将不胜感激

最佳答案

尽管可能,但我怀疑连接变量名称并不是您所需要的。你可以使用一个对象来实现你所需要的。在 Controller 中,您可以将其定义为一个对象:

$scope.subtopicslist = {};

然后在 $http 成功时,您可以按“级别”分配属性

$scope.subtopicslist[data.level] = data.subtopicslist;

然后在模板中您仍然可以使用该对象的单个元素作为模型

ng-model="subtopicslist[level]"

关于angularjs - 有什么方法可以将变量名与字符串连接起来,或者这是基本的编程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20041677/

相关文章:

javascript - ng-model 在嵌入的输入中中断

angularjs - 测试 Angular 指令时,isolateScope() 返回未定义

javascript - Angular $scope 首先设置值而不是服务,在第二个函数调用后一切正常

angularjs - Angular 用户界面路由器禁用某些链接

angularjs - AngularJS 中 Controller 的职责 - 超过两个 View ?

javascript - Angular JS - 单击按钮从指令加载模板 html

angularjs-directive - 带有从外部调用的方法的 AngularJS 指令

angularjs - $rootScope.$new() 和 $rootScope.$new(true) 有什么区别?

angularjs - 将表达式传递给指令

angularjs - Karma 中始终正确的测试失败 - 为什么?