javascript - 尝试使用动态变量创建 Angular foreach

标签 javascript angularjs

我正在尝试创建一个带有 id 的变量列表。我正在使用以下带有 foreach 循环的代码。

    angular.forEach(str, function(value, key) {
      console.log(key + ': ' + value.id);
      //we found project id
      //now attach it to dynamic variable 
        $http.get("http://abounde.com/portal/api/tasks/"+value.id).then(function(response) {
          //create dynamic variable
           if (key != null) {                       
            $parse("project_"+value.id).assign($scope, value);                                
          }                 
          $scope.value = response.data.taskLists;
        });         

    });

我想要将project_1、project_2、project_3 ....传递到作用域。

我做错了什么?

编辑:

看了一些建议后尝试了一些东西..

app.controller('portalController',function($scope, $http, $rootScope){
    $scope.$on('$viewContentLoaded', function() {
        $rootScope.backgroundImg="url(" + images[2].imgObj.src + ")";   //abt bg     
        $http.get("http://abounde.com/portal/api/projects").then(function(response) {
           $scope.myData = response.data.projects;
           var x=0;
           var str = response.data.projects;
            angular.forEach(str, function(value, key) {
              console.log(key + ': ' + value.id);
              //we found project id
              //now attach it to dynamic variable 
                $scope.projects = [];
                $http.get("http://abounde.com/portal/api/tasks/"+value.id).then(function(response) {
                  //create dynamic variable
                  $scope.projects.push(value.id) = response.data.tasklists;            

                });         
                //console.log($scope.projects);
            });
        }); 


    });

    //make a function which takes project id as parameter and returns tasks list
        $scope.getTasksList = function(projectId)
        {
            $http.get("http://abounde.com/portal/api/tasks/"+projectId).then(function(response) {
               $scope.myTasks = response.data.tasklists;
            });
        } 

});

以下错误

enter image description here

如何访问 View 上的动态变量?我假设我需要使用类似的东西..

在 Angular 中访问动态变量的实际方式是什么?

最佳答案

无需使用$parse

将其更改为 $scope,并使用正确的对象操作。

$scope['project_'+v‌​alue.id] = value;

或者,您可以使用动态值数组中的数据;

$scope.projects = [];
// inside your response
$scope.projects.push({
    _id : 'project_'+v‌​alue.id,
    value : value
});

HTML:

<div ng-repeat="project in projects">
    id: {{ project._id}}
    value: {{ project.value}}
</div>

关于javascript - 尝试使用动态变量创建 Angular foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38986221/

相关文章:

javascript - 地理位置始终显示莫斯科 Javascript/JQuery/JSON(开放天气 API)

javascript - 使用 angularjs ng-model 对复选框进行多个操作

javascript - 将复选框或多选下拉列表绑定(bind)到 AngularJS 中的数组?

javascript - 类型错误 : object is not a function at new <anonymous>

javascript - AngularJS 显示一个 json 对象

angularjs - 使用 AngularJS 在文本区域中插入符号的位置

javascript - 文档准备功能

javascript - 拆分 AJAX POST 变量

angularjs - ngRepeat 中的 $first

javascript - 如何使用 ES6 语法访问导入属性