我正在开发一个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模型名称与级别变量连接。在将数据分配给该列表时,我希望将列表名称与从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中应用它? 将不胜感激
答案 0 :(得分:2)
虽然可能,但我怀疑连接变量名不是你需要的。您可以使用对象来实现所需。在控制器中,您可以将其定义为对象:
$scope.subtopicslist = {};
然后在$ http成功时,您可以按“级别”分配属性
$scope.subtopicslist[data.level] = data.subtopicslist;
然后在模板中,您仍然可以将此对象的单个元素用作模型
ng-model="subtopicslist[level]"